规则引擎教程--版本控制
我们在规则编写时,往往会遇到规则反复变化的情况。若我们要每次都去修改规则逻辑,不仅会需耗大量时间,而且还对每次修改的具体的规则不能做好记录。规则引擎对每次修改保存之后的规则包都会记录成一个版本,然后对每个规则包的每个版本都有具体控制,我们不但可以把规则包恢复到任意的历史版本,而且可以比较每个版本之间的具体差别。
规则管理系统顾名思义是一套用于管理规则的系统。我们可以直接把在规则配置器中的规则包,规则工程上传到规则管理系统中;也可以从规则管理系统中导入规则包、规则工程到规则配置器上。在该系统中有:规则管理,用户管理,权限管理,系统管理四大模块。在规则管理这一模块,可以管理每个规则包的各个版本。
在登录规则管理系统之前,要先把相关服务开启。首先,要开启“tomcat”,如下图:
其次,要开启规则管理系统的数据库服务:mysql。如下图:
我们打开浏览器(建议IE8以上),在地址栏输入http://localhost:8880/index.jsp,会出现下图所示的页面:
用户名输入“admin”,密码输入“123456”,点击登录,出现下图所示的页面:
我们可以看到在规则管理系统中目前只储存了一个规则工程“多国工资”,在这工程下有9个规则包。若从规则配置器中导入了规则包到规则管理系统中,便会在“规则工程”菜单栏中出现相应的规则包;若是导入新工程,便会出现对应的工程。
在编写规则之前,先登录规则服务器,这样我们就可以把编写的规则工程、规则包、jsp页面上传到“规则管理系统”中。登录过程如下图所示:
选择“登录规则服务器”之后会出现下图所示的页面:
这里的登录名和密码和规则管理系统的用户名与密码是一致的。点击确定之后,会出现下图所示的提示框:
这表明已成功登陆到服务器中。然后我们在规则配置器中的每步操作都会以“admin”用户记录下来:如创建,修改规则、规则集,规则包等,都会在该规则、规则集的属性窗口中“修改人”中记录“admin”。
右键工程“功能解析”,选择“新建规则包”,创建名为“规则比较”的规则包。步骤如下图所示:
在规则包的对象库中只需定义两个“int”类型的变量:a(b),b(b)。如下图所示:
在规则包添加完成,变量定义完成之后,就要在规则包中添加具体规则逻辑。
在规则包中添加个“a赋值”的规则。步骤如下图所示:
在该规则中,只需添加“a=1”的规则逻辑。实现过程如下:
确认之后,该规则逻辑就编写完成了。
<!--[if !supportLists]-->第一, <!--[endif]-->我们添加个“b赋值”的规则,添加完成后如下图:
我们在该规则中,需实现的逻辑如下图:
在两个变量的赋值都完成之后,需要对规则包进行保存并编译。点击“全部保存”按钮之后,会保存所有未被保存的规则包的rpk文件和生成规则包的rsc文件。操作步骤,如下图所示:
在保存完毕之后,我们可以在消息窗口栏,看到相应的信息:
规则包在编写、保存之后,要把规则包上传到规则服务器上。上传过程如下:
点击“是”之后,规则包就上传到了“规则管理系统”中。如图所示: