ksql中定义的本体在dataModel中不存在

简介:

问题

  前几天还是一切正常。昨天,因为需求方提出了新的需求,所以改动了MySQL中的几个表格。主要的修改方式是,砍去几栏,或者删除几栏,而保留原来的数据;这一操作借助可视化MySQL工具可以轻松完成。但是,在今天的报表实例运行时出现错误“报表执行错误:报表数据获取失败”。


  顺着由前往后调试的思路,首先打开前面.w报表文件,发现图表组件数据源异常,如图所示:


wKioL1ilRimy0TCEAAFEbsNCdBQ656.jpg-wh_50


  于是,再往后检查,跟踪到BIZ端logic下的Action定义。我使用的是简单的ksql创建的KSQL类型Action。接下来想仔细分析一下对应的SQL语句,但是点击ksql编辑器中ksql一行中的...符号想进去时出现如题所示的警告错误。请参考下图:

wKiom1ilR8bD1s8VAACfPHoL2Wc531.jpg-wh_50



解答

  意思再明确不过了,查看本体定义情况吧。于是,转到antology子模块下观察。乍看是没有问题的--其实真正存在问题。先到wex5论坛中搜索相关帮助,只找到一条,说是KSQL编辑器正常的错误提示,再没有其他进展与解答。


  根据以往操作,肯定是在调整数据表结构后再反向生成本体时出现的问题。于是,再次小心细致地把本体再反向生成一遍,并正常生成对应的数据库表。


  那么,接下来要创建ksql类型的ACTION了。问题正在于这里。此前,我是直接在eclipse中新建概念并填入关系,然后在运行界面中输入数据的。而现在,我是直接通过MYSQL后面修改的数据表结构,再来反向生成本体。这一步操作中,要特别注意的标准action操作过程的大小写问题。因为本质上这些ACTION对应于后台的一些JAVA函数,而JAVA自然是区分大小写的。


  接下来,就是检查ksql表达式的问题。幸好,以前的ksql还存在。我把它记录下来,如下:

1
2
3
select  Mo_TradeDetail.fTradeNatureClass  as  fTradeNatureClass,Mo_TradeDetail.fTradeNature  as  fTradeNature, count (Mo_TradeDetail.fTradeNature)  as  fTradeNatureCount, sum (Mo_TradeDetail.fTotal)  as  fTotalCount, sum (Mo_TradeDetail.fFine)  as  fFineCount
     from  Mo_TradeDetailMo_tradedetail
     group  by  Mo_TradeDetail.fTradeNature


  现在,点击【测试】按钮,运行出现错误!但是,没有更细致的错误提示(不像mysql可视化管理工具中那样提示好定位)!


  在浪费了不少时间后,我注意到概念的大小写与我反向生成本体后概念的大小写是不一致的(正确的形式是Mo_tradedetail)。于是,我尝试着把大小写修改过来,如下:

1
2
3
select  Mo_tradedetail.fTradeNatureClass  as  fTradeNatureClass,Mo_tradedetail.fTradeNature  as  fTradeNature, count (Mo_tradedetail.fTradeNature)  as  fTradeNatureCount, sum (Mo_tradedetail.fTotal)  as  fTotalCount, sum (Mo_tradedetail.fFine)  as  fFineCount
     from  Mo_tradedetail Mo_tradedetail
     group  by  Mo_tradedetail.fTradeNature



  现在点击【测试】按钮,运行成功了!接下来,再到前面调整报表窗体中的图表数据源形式便很容易了。


吃亏后的小结


  根本原因是对于WeX5中提供的KSQL语法不熟,如下所描述的:这个KSQL语句中,竟然表格(即概念)名字是大小写敏感的,而后面例如sum函数等根本不敏感!竟然因为小小的语法问题浪费了那么多时间。唉,无怪乎网络上称呼程序员为“程序猿”,虽然听起来有些刺耳,但是的确有一定的道理。


















本文转自朱先忠老师51CTO博客,原文链接:http://blog.51cto.com/zhuxianzhong/1898455,如需转载请自行联系原作者





相关文章
|
6月前
|
存储 机器人 Windows
|
数据可视化 C# C++
工业基础类IFC—提取模型结构树
工业基础类IFC—提取模型结构树
工业基础类IFC—提取模型结构树
|
6天前
|
数据库 Python
定义模型
定义模型。
7 1
|
15天前
|
机器学习/深度学习 人工智能 自然语言处理
大语言模型定义、概念介绍
大语言模型定义、概念介绍
|
8月前
|
算法 C++ 容器
关系类算法函数
关系类算法函数
|
8月前
|
机器学习/深度学习 人工智能 自然语言处理
GraphIE:通过建模实例间和标签间依赖性联合抽取实体、关系和事件 论文解读
事件触发词检测、实体提及识别、事件论元抽取和关系抽取是信息抽取中的四个重要任务,它们被联合执行(联合信息抽取- JointIE),以避免错误传播并利用任务实例之间的依赖关系
108 1
|
自然语言处理 数据处理
浅析命名实体识别(NER)的三种序列标注方法
简述序列标注 序列标注(Sequence Tagging)是NLP中最基础的任务,应用十分广泛,如分词、词性标注(POS tagging)、命名实体识别(Named Entity Recognition,NER)、关键词抽取、语义角色标注(Semantic Role Labeling)、槽位抽取(Slot Filling)等实质上都属于序列标注的范畴。
|
11月前
图的定义与术语的详细总结
理解图的基本概念 各种图的定义 图的顶点与边的关系 连通图的介绍
59 0
C结构中包含自己的嵌套定义
C结构中包含自己的嵌套定义
51 0