【问题标题】:How can I trigger multiple rules in a spreadsheet based drools decision table?如何在基于电子表格的 drools 决策表中触发多个规则?
【发布时间】:2014-10-21 18:47:46
【问题描述】:

我一直在使用基于流口水的电子表格决策表。我的要求是,我需要触发一次执行中指定的多个规则。我在此处附有决策表图像。

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

那么,如果输入条件是TRUE|FALSE|FALSE|TRUE|FALSE|,有没有什么办法可以触发第一条规则和第二条规则一起,并在一个列表中返回结果,这个列表会在这个案例,APPROVERTWO 和 APPROVERFOUR 用于第一个操作。

-------------------------------------------------------------------------------------------------------------------------------------------
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         |   -
---------------------------------------------------------------------------------------------------------------------------------------------

【问题讨论】:

    标签: drools


    【解决方案1】:

    直接的解决方案是修改“批准人一”列中的操作,使其在结果列表中返回 APPROVERTWO 和 APPROVERFOUR。

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

    rule
    when
      Fact( role == "ROLEONE",
            conditionOne == true, conditionTwo == false, conditionThree == FALSE,
            conditionFour != conditionFive )
    then
      return APPROVERTWO and APPROVERFOUR in a list
    end
    

    您在电子表格中表达的逻辑基于属性的各个不同值。显然,如果 #2 触发,则从第一行产生的规则将永远不会触发,反之亦然。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-09-24
      • 1970-01-01
      • 1970-01-01
      • 2015-08-03
      • 1970-01-01
      • 1970-01-01
      • 2015-02-03
      • 1970-01-01
      相关资源
      最近更新 更多