Document Builder: 如何分析rule执行逻辑

68 阅读1分钟

Created by Jerry Wang, last modified on Oct 22, 2014

Element ZCR_RULE_TEST内定义了一条rule: 如果another question的值为X且second question值为YES时,该element将会包含在最终的文档中。

clipboard1

 

采用如下variable的输入,则不会在最终的文档中得到该element:

clipboard2

 

在ui完成了document selection的选择点refresh button后:

将对应的rule load into memory:

clipboard3

 

读取rule的具体内容:

clipboard4

 

clipboard5

 

可以将formula builder切换成expert mode以显示technical name:

clipboard6

 

最后merge完成的rule如下:

clipboard7

 

点了Finish with Defaults button后:

clipboard8

 

此处rule engine开始处理rule:

clipboard9

 

先检查ZFIRST是否等于‘X’:

clipboard10

 

通过document instance拿到ZFIRST的值:

clipboard11

 

<l_arg1>是变量ZFIRST的当前值,<l_arg2>是维护在formula里的期望值:

clipboard12

 

因为使用的是AND,因此如果ZFIRST = ‘X’ 不成立,则不会继续第二个条件的试探:

clipboard13

 

因为IF条件不满足,则进入else 分支,将element exclude:

clipboard14

 

exclude element name:

clipboard15

 

状态设置成exclude:

clipboard1