规则引擎教程--变量跟踪

 功能概述

    在规则包测试过程中,若要知道变量在每个规则中执行情况,变量在每个规则中值的变化情况,就可以对该变量进行“调试跟踪”。这样就可以把变量在每个规则、规则集的值赋值、变化、结果情况全部记录下来。这个变量即可以是“传入数据”中的变量,也可以是“临时数据”中的变量,也可以是“内存表”中的变量。

 

创建个名为“变量跟踪”的规则包,创建过程如下图所示:


 

 

 

 



 包添加完成之后,然后在规则包下添加规则集、规则。右键规则包,选择添加规则集。添加过程如下图:
 

 

 继续在规则集“a大于0”中添加新规则,如下图所示:

 



 

 

继续在规则集“a大于0”中添加新规则,如下图所示:

 



 

 

 

最后,还要在规则集“a大于0”中添加规则“内存表赋值1”,如下图所示:



 



 

 

 

 

这样规则集“a大于0”的规则就添加完成了。继续在规则包中添加个名为“a小于0”的规则集,如下图所示:

 



 

然后,要在该规则集下添加三个规则,完成后如下图所示:



 

 

在规则添加完成之后,要在对象库中添加变量,变量添加过程如下图所示:



  

 

然后,还有在对象库中添加计算表格(内存表),添加过程如下图所示:

 

 



 

 

 

 

在规则与变量都定义好了之后,要在规则与规则集中添加具体的规则逻辑。

 

第一,在规则集“a大于0”中添加的规则逻辑,如下图所示:



 

 

 

 



 

 

第二,要在规则集“a大于0”下的规则“变量赋值1”,添加规则逻辑。完成后,如下图所所示:



 

 

第三,在规则“自增”中,让变量bc自增1,具体的规则逻辑如下图所示:

 



 

 

第四,在规则集“a大于0”下的规则“内存表赋值1”,添加规则逻辑。首先要在该规则的属性窗口,修改该规则的属性设置:



 

在给内存赋值除了每个变量挨个赋值外,还可以使用规则配置器自带的内存表赋值向导。使用向导大大减少了规则编写的时间与步骤。具体的向导步骤,如下图所示:

 



 

 

 

由于内存表刚创建的时候是张空表,所以在给内存表赋值前,需给内存中添加一条空数据,步骤如下图所示:



 

复制了内存表的“insert”方法之后,就要把该方法插入到规则逻辑中去,如下图所示:



 

 



 

 

 

 

这样规则“内存表赋值1”的规则编写就完成了。规则集“a小于0”规则逻辑如下图:



 

 

规则集“a小于0”完成之后,要给规则“变量赋值2”编写逻辑,如下图所示:

 



 

规则“变量赋值2”完成之后,我们在规则“自减”中,让变量bc自减1,具体的规则逻辑如下图所示:



 

变量自减之后,又要给内存表赋值了,在规则“内存表赋值2”中,实现的规则逻辑如下图所示:



 



 

在规则逻辑的编写完成之后,在就可以在对象库中设置需要跟踪的变量。过程如下图所示:

 



 

 

在“传入数据”中的变量添加了“调试跟踪”,在内存表的变量也可以跟踪其执行记录,如下图所示:

 



 

 

这样在规则包测试执行的时候,就可以记录已被“调试跟踪”的四个变量的值变化情况。

 

 

 

 

在规则包全部编写完成之后,就要对规则包进行保存、编译。点击“全部保存”会把所有的未保存的规则包,自动保存并编译。如下图所示:



 

 

点击之后,规则配置器的消息栏会有保存的消息记录,如下图:



 

 

 

规则包编写完成之后,可以添加测试数据进行规则包测试。在规则包测试过程中,就可以跟踪变量,记录变量的值变化情况。测试情况如下图所示:



 

 

点击了“执行到此”之后,就可以看到规则包测试结果和变量值变化。如下图所示:

 

上述的这种情况是执行了规则包进入了规则集“a大于0”的情况,下面再测试下规则集“a小于0 ”的情况。刷新测试数据,然后在规则包测试中输入“a=-3”,测试规则包执行结果,如下图所示:



 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章