规则引擎教程--规则流

    我们在开发规则过程中,规则的执行顺序都是从上到下执行的。规则流是用来控制执行规则顺序的,我们可以在规则流程图中通过连线的方式,设置规则、规则集、决策表执行的顺序。需要注意的是在规则流程图中我们只能控制一级规则执行顺序,不能控制到规则集下面的子规则执行顺序。

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



 


 

该规则包中需要在对象库中,只需定义一个变量:aa)。如下图所示:



 

我们创建好了规则包,添加了变量,然后我们需要添加一个“规则流程”,添加过程如下图所示:

 

 

流程图添加好了之后,我们需要在流程图下添加三个规则,然后我们需要在流程图中设置这三个规则的执行的顺序。

首先,我们在流程图中添加个名为“a等于1”的规则,添加过程如下图所示:



 

 

a等于1”规则添加完成之后,我们要在该规则中编写具体的规则逻辑,过程如下图所示:



 

 

 

 

 

 

这样“a等于1”的规则就完成了。然后,我们接下来添加个“a加上1”的规则,如下图所示:



 

我们在规则“a加上1”中设计的规则逻辑,如下图:



 

规则“a加上1”完成之后,最后还要添加个“a乘以2”的规则,如下图所示:



 

最后,我们需要在“a乘以2”规则中,添加如下的规则逻辑:



 

规则逻辑完成之后,我们要在流程图那里设置规则的执行顺序。选择流程图,通过连线、拖动的方式,把流程规则连接成下图所示:



 

 

这样该流程图就是按照上图中的连线方式顺序执行。这样a的输出期望结果就是4

规则包编写完成之后,我们需要对该规则进行保存、编译,点击“全部保存”按钮,如下图所示:



 

我们来测试该“流程图”的输出结果,测试过程如下图所示:



 

我们可以看到在上述执行顺序下,a的输出结果值为“4”,与该规则的期望的结果是相同的。为了更好理解流程图的执行顺序,在流程图中修改规则“a加上1”与“a乘以2”的执行顺序。首先是要把之前多余的连线删除掉,删除过程如下图所示:



 

删除完成后,流程图如下图所示:



 

然后,再连线不同的规则,设置流程图的执行顺序,完成后如下图所示:



 

这样变量“a”应该是先乘后加,输出期望结果应该为3

保存并编译规则包。我们可以在流程图的测试中,测试下变量“a”的输出结果,测试步骤如下图所示:



 

变量“a”的实际结果值与期望结果值都为3,测试完成!

猜你喜欢

转载自ruleengine.iteye.com/blog/1882710