Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在基于电子表格的drools决策表中触发多个规则?_Drools - Fatal编程技术网

如何在基于电子表格的drools决策表中触发多个规则?

如何在基于电子表格的drools决策表中触发多个规则?,drools,Drools,我一直在使用基于drools的电子表格决策表。我的要求是,我需要在一次执行中触发多个指定的规则。我有决策表图片附在这里 为了解释我的问题,如果输入中的条件是前三个参数为TRUE | FALSE | FALSE(符合第一个规则标准),然后是后两个参数的值符合最后三个规则标准 因此,如果输入条件为TRUE | FALSE | FALSE | TRUE | FALSE |,是否有任何方法可以同时触发第一个规则和第二个规则并在列表中返回结果,在本例中,第一个操作的结果是Approver2和Approve

我一直在使用基于drools的电子表格决策表。我的要求是,我需要在一次执行中触发多个指定的规则。我有决策表图片附在这里

为了解释我的问题,如果输入中的条件是前三个参数为TRUE | FALSE | FALSE(符合第一个规则标准),然后是后两个参数的值符合最后三个规则标准

因此,如果输入条件为TRUE | FALSE | FALSE | TRUE | FALSE |,是否有任何方法可以同时触发第一个规则和第二个规则并在列表中返回结果,在本例中,第一个操作的结果是Approver2和Approver4

-------------------------------------------------------------------------------------------------------------------------------------------
Role    |ConditionOne   |   ConditionTwo    |   ConditionThree  |conditionFour  |conditionFive  |   Approver one        |   Approver two
-------------------------------------------------------------------------------------------------------------------------------------------
ROLEONE |   TRUE        |   FALSE           |   FALSE           |   FALSE       |   TRUE        |   APPROVERTWO         |   APPROVER SEVEN
ROLEONE |               |                   |                   |   TRUE        |   FALSE       |   APPROVERFOUR        |   -
ROLEONE |               |                   |                   |   TRUE        |   TRUE        |   APPROVERFIVE        |   -
ROLEONE |               |                   |                   |   FALSE       |   FALSE       |   APPROVERSIX         |   -
---------------------------------------------------------------------------------------------------------------------------------------------

简单的解决方案是修改列“Approver one”中的操作,以便在结果列表中返回Approver 2和Approver 4

您的应用程序逻辑也可能不符合Drools的电子表格决策表的模式(反之亦然,这相当于一件事)。您所描述的内容可以很容易地表达为一条规则:

rule
when
  Fact( role == "ROLEONE",
        conditionOne == true, conditionTwo == false, conditionThree == FALSE,
        conditionFour != conditionFive )
then
  return APPROVERTWO and APPROVERFOUR in a list
end
您在电子表格中表示的逻辑基于属性的各个不同值。显然,如果#2触发,第一行生成的规则将永远不会触发,反之亦然

可能还有其他选择,但不能基于单个案例提出通用方法