`
NIIT_zhu
  • 浏览: 47529 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

规则引擎教程--规则池

阅读更多

 

在规则开发过程中,往往会遇到某个规则会反复被使用的情况。因此,我们总是希望能通过某种方式调用这些规则,也就是所能实现规则复用。我们知道在“决策树”中,不仅可以实现规则的复用,而且还可设置复用规则执行的条件和复用规则间的条件。但是在“决策池”中,会执行“决策池”里所有的被复用的规则,被复用规则的执行的顺序与规则被引用的先后顺序是一致的。

 

 

 

我们先创建一个名为“基本工程2”的规则包,该规则包下的规则,作为“决策池”的复用规则。

 

右键名为“功能解析”的工程,点击“新建规则包”,创建一个名为“基本工程2”规则包。如下图所示:



 

 

 

 

该规则包中需要在对象库中,需要定义三个“string”类型变量:aa),bb),cc)。如下图所示:

 



 

变量“a”“b”“c”都是在“传入数据”中添加的,然后要在规则包对象库的“外部调用”添加两个方法(公式)。按下图描述的添加:



 

 

 

这些方法是规则引擎封装的一些常用方法,可以在“外部调用”添加这些常用方法,然后可以在规则调用。

 



 

添加了“字符截取”中“从左截取字符”的方法之后,继续添加方法。如下图所示:



 

 

 

点击了“确认”之后,就在外部调用里添加了两个方法。如下图:

 



 

在变量定义完成之后,然后要在规则包中实现具体规则逻辑。右键选择规则包“基本工程2”添加名为“b取值”的规则,添加过程如下所示:



 

 



 

规则添加好了之后,我们要在规则中给变量“b”赋值,赋值过程如下图所示:

 




 
 

 

 

 

 

 

 

确认之后,规则“b赋值”就完成了。我们在规则包“基本工程2”再添加个规则“c取值”,如下图所示:



 

最后,我们需要在规则中添加规则逻辑,如下图所示:



 

 

 

在规则包编写完成之后,我们要保存该规则包。点击“全部保存”按钮,如下图所示:

 



 

点击“保存全部”保存之后,规则配置器会自动保存该规则包的rpk文件和生成规则包对应的rsc文件,在消息栏可以看到如下信息:



 

 

 

“基本工程2”规则包完成之后,我们再创建一个名为“决策池”的规则包。在规则包的“决策池”中,将调用“基本工程2”中的规则。

 

 

 

右键工程“功能解析”,选择“新建规则包“,添加个名为“决策池”的规则包。如下图所示:



 

 



 

和规则包“基本工程2”一样,在规则包“决策池”中,我们也需定义三个“string”类型的变量“a”,“b”,“c”。如下图所示:

 



 

我们在规则包中添加“决策池”,在“决策池”中实现对“基本工程2”中规则的复用,添加“决策池”过程如下图所示:



 

 

 

 

如果要实现对“基本工程2”中的规则复用,首先要在“决策池”的属性栏的“所有规则”中找到该规则包,如下所示:

 





 

 

我们将“b取值”和“c取值”拖动到“决策池”之后,我们看到“决策池”如下图所示:

 

 

 

 

这样“决策池”就实现了对规则“b取值”、“c取值”复用:规则包“决策池”将会依次执行“b取值”“c取值”中的规则逻辑。

 

 

 

我们在规则逻辑完成之后,要测试规则包正确性。给规则规则包添加个“批量测试”,然后在“批量测试”中添加若干测试用例、期望结果值,最后我们只需比对测试用例的期望结果值与规则包的实际输出结果值是否相同。若相同,则测试完成,规则包未发现错误;若不同,测试不通过。

 

 

 

选择规则包,选择“添加批量”,操作步骤如图所示:

 



 

 



 

“批量测试”添加完成之后,我们要在该“批量测试”下添加测试用例。添加测试用例步骤如下图所示:

 



 

 

 

按照上述步骤,我们再给“批量测试”添加两个测试用例。添加完成后,“批量测试”如下图所示:



 

 

测试用例添加完成之后,我们要保存并编译规则包,如下图所示:

 



 

点击“全部保存”会保存规则包的rpk文件,生成规则包的rsc文件。我们可以在消息栏看到下图信息:

 



 

最后测试该规则包,在这些测试数据下实际输出的结果值。测试过程如下所示:

 



 

从上图中可以发现,所有的期望结果与实际输出结果相同,规则包测试完成!

 

 

  • 大小: 30.3 KB
  • 大小: 26.4 KB
  • 大小: 48.1 KB
  • 大小: 45.4 KB
  • 大小: 50.6 KB
  • 大小: 64.8 KB
  • 大小: 38 KB
  • 大小: 31.6 KB
  • 大小: 18.2 KB
  • 大小: 33.7 KB
  • 大小: 35.4 KB
  • 大小: 31.3 KB
  • 大小: 39.9 KB
  • 大小: 43.1 KB
  • 大小: 34.2 KB
  • 大小: 45.6 KB
  • 大小: 58.9 KB
  • 大小: 29.5 KB
  • 大小: 38.9 KB
  • 大小: 31.3 KB
  • 大小: 8.4 KB
  • 大小: 33 KB
  • 大小: 27 KB
  • 大小: 49.1 KB
  • 大小: 57.8 KB
  • 大小: 18.9 KB
  • 大小: 56.7 KB
  • 大小: 22.7 KB
  • 大小: 26.4 KB
  • 大小: 31.6 KB
  • 大小: 35.9 KB
  • 大小: 32.8 KB
  • 大小: 33.3 KB
  • 大小: 48.7 KB
  • 大小: 33.5 KB
  • 大小: 37.9 KB
  • 大小: 35.5 KB
  • 大小: 14.8 KB
  • 大小: 51.8 KB
分享到:
评论
2 楼 NIIT_zhu 2017-07-07  
Wangwei86609 写道
非常好的规则引擎框架,支持决策树和多线程运行规则

https://github.com/wangwei86609/osmanthus

呵呵,一起交流学习
1 楼 Wangwei86609 2017-07-05  
非常好的规则引擎框架,支持决策树和多线程运行规则

https://github.com/wangwei86609/osmanthus

相关推荐

    Java规则引擎---Drools的介绍及应用

    Java规则引擎---Drools的介绍及应用

    Java规则引擎--Drools的介绍及应用

    规则引擎技术是一项很有吸引力的技术.首先介绍了规则引擎的相关概念及其实现原理.然后重点介绍了Java规则引擎技术的规范和一个采用XML和java语言实现的规则引擎--Drools.最后给出了利用Drools解决实际问题的范例并...

    JAVA规则引擎--Drools.doc

    JAVA规则引擎--Drools.doc

    规则引擎教程-决策树.pdf

    。。。

    规则引擎教程-决策树.docx

    。。。

    规则引擎drools-guvnor

    规则引擎drools-guvnor的使用说明文档,便于规则引擎二次开发

    规则引擎实例-教师课堂考勤

    规则引擎实例-教师课堂考勤,应用规则引擎处理不同的业务规则

    基于Java的规则引擎--java规则引擎

    规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将业务决策从应用程序代码中分离出来,并使用预定义的语义模块编写业务决策。接受数据输入,解释业务规则,并根据规则做出业务决策

    Drools规则引擎技术分享

    - Drools规则引擎 - 问题引出 - 电商平台促销活动 -  规则引擎概述 - 什么是规则引擎 - 规则引擎方案对比 - 使用规则引擎的优势 - 规则引擎应用场景 - Drools介绍 - 开发实现 - 规则引擎构成 - 相关概念...

    drools文档教程-规则引擎文档

    drools文档教程-规则引擎文档

    规则引擎-数据库访问操作

    一般的规则引擎产品并没有提供访问数据库的功能,我们在这里创新性的在规则引擎中引入操作数据库的功能,可以在实际的规则配置过程中起到事半功倍的效果,是整过规则的结构更加的协调统一

    规则引擎-决策池

    在规则开发过程中,往往会遇到某个规则会反复被使用的情况。因此,我们总是希望能通过某种方式...但是在“决策池”中,会执行“决策池”里所有的被复用的规则,被复用规则的执行的顺序与规则被引用的先后顺序是一致的。

    关联规则挖掘 FP-tree关联规则挖掘 FP-tree

    关联规则挖掘 FP-tree关联规则挖掘 FP-tree关联规则挖掘 FP-tree关联规则挖掘 FP-tree关联规则挖掘 FP-tree

    [Drools]JAVA规则引擎 -- Drools

    NULL 博文链接:https://haroldxie.iteye.com/blog/1317751

    springboot ice规则引擎

    Easy Rules,Drools,Aviator表达式求值引擎,Rule Book、Oracle Rules SDK、Blaze (fico)、IBM Decision Manager,DTRules,DSL规则引擎 规则引擎由三部分 事实(Fact):已知对象,比如以上刷卡的行为,即成事实...

    规则引擎-决策树

    在这里规则引擎提供了“决策树”的概念:在“决策树”中可以引用其他规则包的规则单位。被引用的规则可以是其他规则包的规则,也可以是其他工程的规则。我们可以在“决策树”中,设置引用规则执行的顺序,也可以设置...

    规则引擎-规则测试和轨迹跟踪

    在规则引擎中测试的方法有两种:一种是普通的规则包测试,另外一种是批量测试。在普通测试中,可以在任意规则、规则集中选择“执行到此”,意思是:规则包执行到该规则就停止,然后测试规则包的输出结果;同时也可以...

    java规则引擎 -- Drools

    NULL 博文链接:https://gwh-08.iteye.com/blog/2241020

    Drools5规则引擎开发教程.pdf.zip-最新-目录-完整

    Drools5规则引擎开发教程.pdf.zip-最新-目录-完整Drools5规则引擎开发教程.pdf.zip-最新-目录-完整

    规则引擎-表达式规则

    规则引擎提供了内存表的概念,内存表就是一张虚拟表。我们可以把数据库中表的数据导入到内存表中,再对内存表进行操作。 表达式表格,实际上就是对内存表进行查询操作。在这个表达式中,我们可以设置不同的条件,...

Global site tag (gtag.js) - Google Analytics