drools的Guvnor规则管理系统使用教程
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Guvnor规则管理及规则平台思路
以下均以guvnor-distribution-5.4.0.Final.zip为例。
1.规则DRL文件结构
Drools规则一个典型的DRL文件的结构如下:
○1 package com.sample //包名
import java.util.Date;
○2import com.sample.domain.Message; //引入外部类
import com.sample.domain.Address;
//声明一个Country类型Fact
○3declare Country
countryName : String
countryCode : String
createDate : java.util.Date
end
○4global java.util.List myGlobalList//全局变量
○5function String changeAddressName(Address address,String
newAddress){ //定义函数
address.setAddressName(newAddress);
return newAddress;
}
○6rule"Hello World"
○7no-loop true
salience 10
○8when
m : Message( status == Message.HELLO, myMessage : message ) a : Address ( $cnum : cnum > 10 )
co : Country ( countryCode == "086" )
○9then
changeAddressName(a,"上海路150号"); //调用函数
co.setCountryName("China");
System.out.println( myMessage );
m.setMessage( "Goodbye cruel world" );
m.setStatus( Message.GOODBYE );
myGlobalList.add("global3");
update( m );
end
rule"GoodBye"
when
Message( status == Message.GOODBYE, myMessage : message ) then
System.out.println( myMessage );
End
2.规则包的创建
有以下两种方式来创建:
源码为:
3.外部引入类的设置在外部编写好Message和Address类,如下:
在guvnor中的com.sample中创建”上传POJO Model jar”
上图选择,先前的导出的hello.jar,完成后,如下图:
在com.sample的编辑可以看到,有两个类已经导入了:
4.Declare类的创建在guvnor中点”新建声明性模型”,如下图:
在上图中选择相应的包。OK
点击Add new fact type输入名称,如下图:
在此可以增加字段或元数据。
增加Country的属性,如下:
完成后,查看”源代码”如下图:
5.全局变量的创建
在guvnor中点击”全局变量”的”+”号,进行增加全局变量,如下:
进行定义全局变量:
定义完成后如下:
此时点击查看”源代码”如下图:
6.函数的创建
在guvnor中新建,如下图:
点OK后,出现一个新的函数编辑器,如下:在上面输入函数代码,如下图:
在com.sample的主界面如下:
可以看到增加了一个名称changeAddressName的函数,状态为draft发布中。现在查看”源代码”则显示,如下图:
7.规则的创建
创建完成后,出现属性页面,如下:
点击”编辑”窗口,如下:
上图蓝色框是用来新增此RULE的匹配条件的LHS,而红色框是用来新增规则的处理RHS。而(show options…)点击后可以选择此RULE的相关属性。
点击“源代码”如下图:
7.1规则的属性创建
点击“show options…”进行此规则的属性设置,如下图:
选择相应的规则运行属性,完成后如下图,设置相应的值。
点击”源代码”可以看到如下图:
现在在com.sample主界面,可以看到已经创建了一个规则,如下图:
7.2规则的LHS(when)条件元素创建
在规则的编辑界面,点击when右边的”+”,如下图:
来增加相关的when条件,如下图:
上图红色框是先前已经定义或从外部引入的类pojo模型。
在此进行变量和条件的设置,如下图:
上图点击”message”为此字段绑定变量。完成后如下:
当然也可以增加自由的”自由格式的drl”,进行条件的编写,如下图:
在继续增加其他的LHS,如下:点击红色框的”+”
7.3规则的RHS(then)执行创建
在THEN右边”+”点击来创建THEN执行语句,如下图:
如上图,如果要手工编写代码就选择”添加自由格式的drl”则会出现一个代码输入框来输入代码。如下图: