您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 其它文档 > drools的Guvnor规则管理系统使用教程
Guvnor规则管理及规则平台思路以下均以guvnor-distribution-5.4.0.Final.zip为例。1.规则DRL文件结构Drools规则一个典型的DRL文件的结构如下:○1packagecom.sample//包名importjava.util.Date;○2importcom.sample.domain.Message;//引入外部类importcom.sample.domain.Address;//声明一个Country类型Fact○3declareCountrycountryName:StringcountryCode:StringcreateDate:java.util.Dateend○4globaljava.util.ListmyGlobalList//全局变量○5functionStringchangeAddressName(Addressaddress,StringnewAddress){//定义函数address.setAddressName(newAddress);returnnewAddress;}○6ruleHelloWorld○7no-looptruesalience10○8whenm:Message(status==Message.HELLO,myMessage:message)a:Address($cnum:cnum10)co:Country(countryCode==086)○9thenchangeAddressName(a,上海路150号);//调用函数co.setCountryName(China);System.out.println(myMessage);m.setMessage(Goodbyecruelworld);m.setStatus(Message.GOODBYE);myGlobalList.add(global3);update(m);endruleGoodByewhenMessage(status==Message.GOODBYE,myMessage:message)thenSystem.out.println(myMessage);End2.规则包的创建有以下两种方式来创建:源码为:3.外部引入类的设置在外部编写好Message和Address类,如下:将两个类打包成jar包。在guvnor中的com.sample中创建”上传POJOModeljar”上图选择,先前的导出的hello.jar,完成后,如下图:在com.sample的编辑可以看到,有两个类已经导入了:4.Declare类的创建在guvnor中点”新建声明性模型”,如下图:在上图中选择相应的包。OK点击Addnewfacttype输入名称,如下图:在此可以增加字段或元数据。增加Country的属性,如下:完成后,查看”源代码”如下图:5.全局变量的创建在guvnor中点击”全局变量”的”+”号,进行增加全局变量,如下:进行定义全局变量:定义完成后如下:此时点击查看”源代码”如下图:6.函数的创建在guvnor中新建,如下图:点OK后,出现一个新的函数编辑器,如下:在上面输入函数代码,如下图:在com.sample的主界面如下:可以看到增加了一个名称changeAddressName的函数,状态为draft发布中。现在查看”源代码”则显示,如下图:7.规则的创建创建完成后,出现属性页面,如下:点击”编辑”窗口,如下:上图蓝色框是用来新增此RULE的匹配条件的LHS,而红色框是用来新增规则的处理RHS。而(showoptions…)点击后可以选择此RULE的相关属性。点击“源代码”如下图:7.1规则的属性创建点击“showoptions…”进行此规则的属性设置,如下图:选择相应的规则运行属性,完成后如下图,设置相应的值。点击”源代码”可以看到如下图:现在在com.sample主界面,可以看到已经创建了一个规则,如下图:7.2规则的LHS(when)条件元素创建在规则的编辑界面,点击when右边的”+”,如下图:来增加相关的when条件,如下图:上图红色框是先前已经定义或从外部引入的类pojo模型。在此进行变量和条件的设置,如下图:上图点击”message”为此字段绑定变量。完成后如下:当然也可以增加自由的”自由格式的drl”,进行条件的编写,如下图:在继续增加其他的LHS,如下:点击红色框的”+”7.3规则的RHS(then)执行创建在THEN右边”+”点击来创建THEN执行语句,如下图:如上图,如果要手工编写代码就选择”添加自由格式的drl”则会出现一个代码输入框来输入代码。如下图:当然这是一种简便的方法。下面来使用可视化的操作,在弹出的选择对象框中如下:上图可以看到在LHS中定义的变量全部出来了。也都可进行相应的选择。现在我们是调用changeAddressName函数如下:这边没有直接调用的选项,所以选择”添加自由格式的drl”,如下图:现在进行co.setCountryName(China);设置仿照上面的操作。完成后如下图:此时”源代码”如下图:完成后如下图:最后设置update(m);完成后,如下图:此时”源代码”如下:现在看一下com.sample的源代码,如下:8.规则的测试场景创建点击”新建测试场景”菜单,创建一个测试场景,如下图:继续设置运行的fact的值,如下图:完成后如下图:点击”运行测试场景”来运行测试场景,如下图:可以看到后台的tomcat控制台显示了以上信息,同时可以看到上图有2个规划被激活。9.外部程序调用规则规则定义好,就可以在com.sample的编辑tab页,看到如下,红色的框,有若干url运用客户端,调用来进行调用在一个java的console程序来调用,此规则,见HelloRuleTest.java运行后,在控制台出现如下:调用完成。
本文标题:drools的Guvnor规则管理系统使用教程
链接地址:https://www.777doc.com/doc-6817919 .html