规则引擎教程--规则流
?
????我们在开发规则过程中,规则的执行顺序都是从上到下执行的。规则流是用来控制执行规则顺序的,我们可以在规则流程图中通过连线的方式,设置规则、规则集、决策表执行的顺序。需要注意的是在规则流程图中我们只能控制一级规则执行顺序,不能控制到规则集下面的子规则执行顺序。
?
?
?
右键名为“功能解析”的工程,点击“新建规则包”,创建一个名为“规则流”的规则包,如下图所示:
?
?
该规则包中需要在对象库中,只需定义一个变量:a(a)。如下图所示:
?
?
?
我们创建好了规则包,添加了变量,然后我们需要添加一个“规则流程”,添加过程如下图所示:
?
?
?
?
流程图添加好了之后,我们需要在流程图下添加三个规则,然后我们需要在流程图中设置这三个规则的执行的顺序。
?
首先,我们在流程图中添加个名为“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,测试完成!
?