CN102768682B - 业务规则处理装置和业务规则处理方法 - Google Patents
业务规则处理装置和业务规则处理方法 Download PDFInfo
- Publication number
- CN102768682B CN102768682B CN201210222569.3A CN201210222569A CN102768682B CN 102768682 B CN102768682 B CN 102768682B CN 201210222569 A CN201210222569 A CN 201210222569A CN 102768682 B CN102768682 B CN 102768682B
- Authority
- CN
- China
- Prior art keywords
- business rule
- data
- rule
- syntax tree
- abstract syntax
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种业务规则处理装置,包括:规则处理模块,将业务规则处理为抽象语法树;定位查询模块,查询所述抽象语法树中第一数据对应的元数据模型实体,并查询所述元数据模型实体对应的且特定规则引擎可识别的第二数据;编译转换模块,将所述抽象语法树转换成所述特定规则引擎可识别的规则,其中,将所述第一数据转换成所述第二数据。根据本发明的又一方面,还提出了一种业务规则处理方法。通过本发明的技术方案,能够直接基于ERP发布的元数据模型进行业务规则的编写,充分利用ERP的国际化现有成果,可以很大程度上减少为业务人员提供业务规则编写界面时,繁琐的国际化和本地化开发和映射操作的工作量。
Description
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种业务规则处理装置和一种业务规则处理方法。
背景技术
在业务规则编写和设计的过程中,规则设计人员和开发人员需要做大量的业务对象模型到规则引擎支持的对象模型的映射和本地化工作,为了给业务人员提供近似自然语言的规则编写,目前主要采用两种方法:
一种是IBM ilog采用(如图1所示)的基于XOM(Execute Object Model)建立BOM(business Object Model),并且维护BOM和XOM之间的映射关系,然后基于BOM建立业务领域的专业词汇表和短语。这种方法的不足:一是没有考虑企业现有业务领域的投入,比如现有ERP厂商已经有基于元数据进行建模工具,并且在业务领域建模和国际化方面做了大量的工作,如果采用ILOG的JRules,需要重新为JRules建立一套BOM,并且为满足不同语种的业务人员编写规则的需要,同样还需要针对每一个语种,再进行一遍国际化操作;另外这种方法在技术上适用与对单个对象的词汇和短语,但是当处理多个对象之间的关联关系存在很大不足,尤其是关系达到三级以上时,处理起来比较费劲。如图1所示,为ILOG的业务规则映射成技术语言示例
另外一种就是开源规则引擎drools的处理方法,如图2所示,以自然语言的句子为处理单元,进行句子到规则对象或方法的映射,其不足就是处理粒度太大,不容易复用,映射的工作量大,同样存在国际化处理的工作量大的问题,无法复用目前企业业务领域建模和国际化方面的成果。并且由于对同一领域的业务术语存在两份甚至是多份国际化的版本,容易导致术语的不一致。
而另一方面ERP厂商已经有基于元数据进行建模工具,能够将业务模型映射成编程语言的对象和方法,并且在业务领域建模和国际化方面做了大量的工作,那么直接基于元数据进行业务规则的编写,免去业务规则模型对象的重复建立和国际化等过程中的手工操作就显得十分有意义。
因此,需要一种新的处理系统,能够直接基于ERP发布的元数据模型进行业务规则的编写,充分利用ERP的国际化现有成果,可以很大程度上减少为业务人员提供业务规则编写界面时,繁琐的国际化和本地化开发和映射操作的工作量。
发明内容
本发明正是基于上述问题,提出了一种业务规则处理装置,能够直接基于ERP发布的元数据模型进行业务规则的编写,充分利用ERP的国际化现有成果,可以很大程度上减少为业务人员提供业务规则编写界面时,繁琐的国际化和本地化开发和映射操作的工作量。
有鉴于此,本发明提出了一种业务规则处理装置,包括:规则处理模块,将业务规则处理为抽象语法树;定位查询模块,查询所述抽象语法树中第一数据对应的元数据模型实体,并查询所述元数据模型实体对应的且特定规则引擎可识别的第二数据;编译转换模块,将所述抽象语法树转换成所述特定规则引擎可识别的规则,其中,将所述第一数据转换成所述第二数据。
在该技术方案中,由于元数据对用户来说更加直观,且与业务关联更强,所以基于元数据进行业务规则的编写对用户来说非常简单,而通过基于元数据进行的转换,可以实现将业务规则转换为特定规则引擎可识别的形式,这极大降低了用户编写规则的难度。
在上述技术方案中,优选地,所述第一数据包括所述元数据模型实体的类型和/或属性。在该技术方案中,用户可以基于元数据的类型以及属性编写规则。
在上述技术方案中,优选地,所述第二数据包括所述元数据模型实体对应的编程语言对象的属性和/或方法。在该技术方案中,视规则引擎的种类,将第一数据转换为特定类型的编程语言对象的属性以及方法,例如,对于drools引擎来说,需转换为成java对象的属性以及方法。
在上述技术方案中,优选地,所述编译转换模块按所述业务规则的文法,转换所述抽象语法树中的其他数据。在该技术方案中,其他数据的转换规则,按所述业务规则的文法定义即可。
在上述任一技术方案中,优选地,所述规则处理模块包括:词法分析器模块,将所述业务规则处理为词集合;语法分析器模块,将所述词集合处理为所述抽象语法树。在该技术方案中,词法分析、语法分析的过程,可以选用第三方工具来完成。
根据本发明的又一方面,还提出了一种业务规则处理方法,其特征在于,包括:步骤402,将业务规则处理为抽象语法树;步骤404,查询所述抽象语法树中第一数据对应的元数据模型实体,并查询所述元数据模型实体对应的且特定规则引擎可识别的第二数据;步骤406,将所述抽象语法树转换成所述特定规则引擎可识别的规则,其中,将所述第一数据转换成所述第二数据。
在该技术方案中,由于元数据对用户来说更加直观,且与业务关联更强,所以基于元数据进行业务规则的编写对用户来说非常简单,而通过基于元数据进行的转换,可以实现将业务规则转换为特定规则引擎可识别的形式,这极大降低了用户编写规则的难度。
在上述技术方案中,优选地,所述第一数据包括所述元数据模型实体的类型和/或属性。在该技术方案中,用户可以基于元数据的类型以及属性编写规则。
在上述技术方案中,优选地,所述第二数据包括所述元数据模型实体对应的编程语言对象的属性和/或方法。在该技术方案中,视规则引擎的种类,将第一数据转换为特定类型的编程语言对象的属性以及方法,例如,对于drools引擎来说,需转换为成java对象的属性以及方法。
在上述技术方案中,优选地,所述步骤406还包括:按所述业务规则的文法,转换所述抽象语法树中的其他数据。在该技术方案中,其他数据的转换规则,按所述业务规则的文法定义即可。
在上述任一技术方案中,优选地,所述步骤402包括:将所述业务规则处理为词集合,将所述词集合处理为所述抽象语法树。在该技术方案中,词法分析、语法分析的过程,可以选用第三方工具来完成。
通过上述技术方案,能够直接基于ERP发布的元数据模型进行业务规则的编写,充分利用ERP的国际化现有成果,可以很大程度上减少为业务人员提供业务规则编写界面时,繁琐的国际化和本地化开发和映射操作的工作量。
附图说明
图1示出了ILOG的业务规则映射成技术语言示例;
图2示出了Drools的业务规则映射成技术语言示例;
图3示出了根据本发明的实施例的业务规则处理装置的框图;
图4示出了根据本发明的实施例的业务规则处理方法的流程图;
图5A至图5F示出了根据本发明的实施例的业务规则处理方法的具体实现的示意图。
具体实施方式
为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。
在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。
图3示出了根据本发明的实施例的业务规则处理装置的框图。
如图3所示,业务规则处理装置300包括:规则处理模块302,将业务规则处理为抽象语法树;定位查询模块304,查询抽象语法树中第一数据对应的元数据模型实体,并查询元数据模型实体对应的且特定规则引擎可识别的第二数据;编译转换模块306,将抽象语法树转换成特定规则引擎可识别的规则,其中,将第一数据转换成第二数据。
在该技术方案中,由于元数据对用户来说更加直观,且与业务关联更强,所以基于元数据进行业务规则的编写对用户来说非常简单,而通过基于元数据进行的转换,可以实现将业务规则转换为特定规则引擎可识别的形式,这极大降低了用户编写规则的难度。
在上述技术方案中,第一数据包括元数据模型实体的类型和/或属性。在该技术方案中,用户可以基于元数据的类型以及属性编写规则。
在上述技术方案中,第二数据包括元数据模型实体对应的编程语言对象的属性和/或方法。在该技术方案中,视规则引擎的种类,将第一数据转换为特定类型的编程语言对象的属性以及方法,例如,对于drools引擎来说,需转换为成java对象的属性以及方法。
在上述技术方案中,编译转换模块按业务规则的文法,转换抽象语法树中的其他数据。在该技术方案中,其他数据的转换规则,按所述业务规则的文法定义即可。
在上述任一技术方案中,规则处理模块302包括:词法分析器模块3022,将业务规则处理为词集合;语法分析器模块3024,将词集合处理为所述抽象语法树。在该技术方案中,词法分析、语法分析的过程,可以选用第三方工具来完成。
图4示出了根据本发明的实施例的业务规则处理方法的流程图。
如图4所示,业务规则处理方法包括:步骤402,将业务规则处理为抽象语法树;步骤404,查询抽象语法树中第一数据对应的元数据模型实体,并查询元数据模型实体对应的且特定规则引擎可识别的第二数据;步骤406,将抽象语法树转换成特定规则引擎可识别的规则,其中,将第一数据转换成第二数据。
在该技术方案中,由于元数据对用户来说更加直观,且与业务关联更强,所以基于元数据进行业务规则的编写对用户来说非常简单,而通过基于元数据进行的转换,可以实现将业务规则转换为特定规则引擎可识别的形式,这极大降低了用户编写规则的难度。
在上述技术方案中,第一数据包括元数据模型实体的类型和/或属性。在该技术方案中,用户可以基于元数据的类型以及属性编写规则。
在上述技术方案中,第二数据包括元数据模型实体对应的编程语言对象的属性和/或方法。在该技术方案中,视规则引擎的种类,将第一数据转换为特定类型的编程语言对象的属性以及方法,例如,对于drools引擎来说,需转换为成java对象的属性以及方法。
在上述技术方案中,步骤406还包括:按业务规则的文法,转换抽象语法树中的其他数据。在该技术方案中,其他数据的转换规则,按所述业务规则的文法定义即可。
在上述任一技术方案中,步骤402包括:将业务规则处理为词集合,将词集合处理为抽象语法树。在该技术方案中,词法分析、语法分析的过程,可以选用第三方工具来完成。
图5A至图5F示出了根据本发明的实施例的业务规则处理方法的具体实现的示意图。
如图5A所示,首先需要根据元数据模型的特点抽象出文法的定义,采用antlr工具(一种语言识别工具)进行编写,Antlr工具根据定义的文法自动生成词法分析器装置和语法分析器装置。
如图5B所示,技术方案的处理流程如下:
基于元数据编写的领域业务规则,以规则字符流的形式作为词法分析装置的输入;
词法分析装置502按照前面定义的文法对规则字符流进行分析检验,并形成词(token)集合;
这些词集合将作为语法分析装置的输入,语法分析装置504按照文法对词集合进行分析检验,并形成抽象语法树;
编译转换装置506将抽象语法树作为输入,分析抽象语法树,通过国际化分析装置508定位到元数据模型,然后通过元数据模型分析与转换装置510定位到元数据模型对应的java语言对象及对象的属性和方法。最后将抽象语法树转换成drools、Jrules和其他规则引擎识别的技术规则。
如图5C所示,词法分析装置实现规则的字符流到词集合的文法分析,主要通过Metadata2drlLexer类来实现。
如图5D所示,语法分析装置实现规则的词集合到抽象语法树的文法分析,主要通过Metadata2drlParser类来实现。
如图5E所示,编译转换装置实现抽象语法树的分析,通过国际化分析装置定位到元数据模型,然后通过元数据模型分析与转换装置定位到元数据模型对应的java语言对象及对象的属性和方法。最后将抽象语法树转换成drools、Jrules和其他规则引擎识别的技术规则,主要通过Metadata2DrlExpander类来实现。
以drools规则引擎为例,进行具体的说明。
(1)基于业务元数据进行规则编写的语法定义、词法分析和语法分析:
规则的语法定义如下:
首先看看示例,在ERP中关于铁精粉含纯铁量优质优价的一条规则,这条规则基于业务元数据进行编写:
如图5F所示,首先“入库单”取之于元数据模型实体“入库单”,“物料编码”为“入库单”的属性;其次,在<conditional element>部分“.”操作为取值操作,在<action>部分“.”操作为赋值操作。最后<conditional element>部分的操作符除了“==”外,还需要定义“<”,“<=”,“>”,“>=”,“!=”,“contains”,“not contains”等操作符。
词法分析装置和语法分析装置需要对基于元数据编写的规则进行词法和语法分析检验,主要是when和then部分会用到元数据模型。
(2)基于业务元数据编写的规则翻译成规则引擎理解的技术语言规则:
这部分需要将类似如下的含有元数据的规则:
翻译成如下drools规则引擎识别的规则:
在这个过程中需要通过国际化分析装置,找到“入库单”、“检验单”和“检验项”对应的元数据实体模型,然后通过元数据模型分析与转换装置找到“入库单”、“检验单”和“检验项”元数据实体模型对应的java对象“PurchaseInVO”、“CheckBillVO”和“CheckVO”。对于“物料编码”、“检验项名称”和“检验项值”等也需要做类似的处理,最后编译转换装置将这些映射组织起来,转换成drools规则能识别的技术规则。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (8)
1.一种业务规则处理装置,其特征在于,包括:
规则处理模块,将业务规则处理为抽象语法树;
定位查询模块,查询所述抽象语法树中第一数据对应的元数据模型实体,并查询所述元数据模型实体对应的且特定规则引擎可识别的第二数据;
编译转换模块,将所述抽象语法树转换成所述特定规则引擎可识别的规则,其中,将所述第一数据转换成所述第二数据;
所述编译转换模块按所述业务规则的文法,转换所述抽象语法树中的其他数据。
2.根据权利要求1所述的业务规则处理装置,其特征在于,所述第一数据包括所述元数据模型实体的类型和/或属性。
3.根据权利要求1所述的业务规则处理装置,其特征在于,所述第二数据包括所述元数据模型实体对应的编程语言对象的属性和/或方法。
4.根据权利要求1至3中任一项所述的业务规则处理装置,其特征在于,所述规则处理模块包括:
词法分析器模块,将所述业务规则处理为词集合;
语法分析器模块,将所述词集合处理为所述抽象语法树。
5.一种业务规则处理方法,其特征在于,包括:
步骤402,将业务规则处理为抽象语法树;
步骤404,查询所述抽象语法树中第一数据对应的元数据模型实体,并查询所述元数据模型实体对应的且特定规则引擎可识别的第二数据;
步骤406,将所述抽象语法树转换成所述特定规则引擎可识别的规则,其中,将所述第一数据转换成所述第二数据;
所述步骤406还包括:
按所述业务规则的文法,转换所述抽象语法树中的其他数据。
6.根据权利要求5所述的业务规则处理方法,其特征在于,所述第一数据包括所述元数据模型实体的类型和/或属性。
7.根据权利要求5所述的业务规则处理方法,其特征在于,所述第二数据包括所述元数据模型实体对应的编程语言对象的属性和/或方法。
8.根据权利要求5至7中任一项所述的业务规则处理方法,其特征在于,所述步骤402包括:
将所述业务规则处理为词集合,将所述词集合处理为所述抽象语法树。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210222569.3A CN102768682B (zh) | 2012-06-28 | 2012-06-28 | 业务规则处理装置和业务规则处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210222569.3A CN102768682B (zh) | 2012-06-28 | 2012-06-28 | 业务规则处理装置和业务规则处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102768682A CN102768682A (zh) | 2012-11-07 |
CN102768682B true CN102768682B (zh) | 2015-10-21 |
Family
ID=47096086
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210222569.3A Active CN102768682B (zh) | 2012-06-28 | 2012-06-28 | 业务规则处理装置和业务规则处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102768682B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092967A (zh) * | 2013-01-22 | 2013-05-08 | 交通银行股份有限公司 | 一种基于规则引擎的业务规则决策方法及装置 |
CN104252511A (zh) * | 2013-11-05 | 2014-12-31 | 深圳市华傲数据技术有限公司 | 一种sql命令编译方法和装置 |
CN105573726B (zh) * | 2014-10-10 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 一种规则处理方法及设备 |
CN105653268A (zh) * | 2015-12-28 | 2016-06-08 | 中国民航信息网络股份有限公司 | 规则引擎调试方法及系统 |
US10185720B2 (en) | 2016-05-10 | 2019-01-22 | International Business Machines Corporation | Rule generation in a data governance framework |
CN108170661B (zh) * | 2016-12-07 | 2022-04-12 | 北京京东尚科信息技术有限公司 | 一种规则文本的管理方法及系统 |
CN107895286B (zh) * | 2017-11-13 | 2021-11-26 | 天津幸福生命科技有限公司 | 理赔金额确定方法及装置、存储介质和电子设备 |
CN108021559B (zh) * | 2018-02-05 | 2022-05-03 | 威盛电子股份有限公司 | 自然语言理解系统以及语意分析方法 |
CN109255511A (zh) * | 2018-07-09 | 2019-01-22 | 广州品唯软件有限公司 | 基于中央决策引擎的业务排序方法及系统 |
CN109194611B (zh) * | 2018-07-24 | 2020-07-24 | 北京邮电大学 | 一种网间互联安全控制策略规则映射方法 |
CN110633301B (zh) * | 2019-09-19 | 2023-06-02 | 浪潮软件集团有限公司 | 一种基于引擎设置抽取数据的方法及系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101105814A (zh) * | 2007-09-11 | 2008-01-16 | 金蝶软件(中国)有限公司 | 一种将Script语言转换成SQL语言的方法及装置 |
CN101281466A (zh) * | 2008-05-27 | 2008-10-08 | 北京中企开源信息技术有限公司 | 基于业务本体特征的业务对象建模方法 |
CN101477462A (zh) * | 2009-02-12 | 2009-07-08 | 山东浪潮齐鲁软件产业股份有限公司 | 一种用于动态改变系统行为的模型驱动软件开发方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2002093367A1 (en) * | 2001-05-11 | 2002-11-21 | Computer Associates Think, Inc. | Method and system for transforming legacy software applications into modern object-oriented systems |
US8402064B2 (en) * | 2010-02-01 | 2013-03-19 | Oracle International Corporation | Orchestration of business processes using templates |
-
2012
- 2012-06-28 CN CN201210222569.3A patent/CN102768682B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101105814A (zh) * | 2007-09-11 | 2008-01-16 | 金蝶软件(中国)有限公司 | 一种将Script语言转换成SQL语言的方法及装置 |
CN101281466A (zh) * | 2008-05-27 | 2008-10-08 | 北京中企开源信息技术有限公司 | 基于业务本体特征的业务对象建模方法 |
CN101477462A (zh) * | 2009-02-12 | 2009-07-08 | 山东浪潮齐鲁软件产业股份有限公司 | 一种用于动态改变系统行为的模型驱动软件开发方法 |
Also Published As
Publication number | Publication date |
---|---|
CN102768682A (zh) | 2012-11-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102768682B (zh) | 业务规则处理装置和业务规则处理方法 | |
Scheer | Business process engineering: reference models for industrial enterprises | |
Witte et al. | Flexible Ontology Population from Text: The OwlExporter. | |
Zipser et al. | A model oriented approach to the mapping of annotation formats using standards. | |
CN110555025A (zh) | 一种web表单自定义字段的实现方法与系统 | |
CN103631632A (zh) | 移植方法及源到源编译器 | |
JP2006221560A (ja) | データ置換装置、データ置換方法およびデータ置換プログラム | |
CN103049251A (zh) | 一种数据库持久层装置及数据库操作方法 | |
US7853595B2 (en) | Method and apparatus for creating a tool for generating an index for a document | |
CN107403111A (zh) | Hive数据脱敏方法及装置 | |
Del Gratta et al. | Converting the PAROLE SIMPLE CLIPS Lexicon into RDF with lemon | |
CN103838711A (zh) | 基于规则的可定义式语义解析系统及方法 | |
Yuan et al. | Easytool: Enhancing llm-based agents with concise tool instruction | |
Sharma et al. | Extracting high-level functional design from software requirements | |
CN102541614A (zh) | 基于代码分析的计算模块输入输出数据自动解析方法 | |
CN105426676B (zh) | 一种钻井数据处理方法和系统 | |
TW201113734A (en) | Method and system for smart Mark-up of natural language business rules | |
Abirami et al. | Conceptual modeling of non-functional requirements from natural language text | |
CN107665243A (zh) | 一种基于数据库访问的跨语言环境数据交互方法 | |
Khankasikam | Knowledge capture for Thai word segmentation by using CommonKADS | |
Bhattacharya et al. | Customizing backend logic using a chatbot | |
Wolf et al. | Characterization of toponym usages in texts | |
JP2019109687A (ja) | プログラミング言語変換支援装置、プログラミング言語変換支援方法、およびプログラム | |
Clark et al. | The big house dataset: desired applications and interactions | |
Kim | Designing of domain modeling for mobile applications development |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
CB02 | Change of applicant information |
Address after: 100094 Haidian District North Road, Beijing, No. 68 Applicant after: Yonyou Network Technology Co., Ltd. Address before: 100094 Beijing city Haidian District North Road No. 68, UFIDA Software Park Applicant before: UFIDA Software Co., Ltd. |
|
COR | Change of bibliographic data | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |