【问题标题】:Nested Rules In DroolsDrools 中的嵌套规则
【发布时间】:2013-06-23 12:19:08
【问题描述】:

我有一个包含 100 多个规则的 .drl 文件。大约有 40 条类似规则“1”的规则,大约 35 条类似规则“2”,其余规则类似规则“3”。

rule "1"
    when
        m: MyBeanClass( something1 == "train" && something2 == somevalue2)
    then
        m.setSomeThing(someOtherValue);
        update(m);
    end

rule "2"
    when
        m: MyBeanClass( something1 == "bus" && something2 == somevalue2)
    then
        m.setSomeThing(someOtherValue);
        update(m);
    end

rule "3"
    when
        m: MyBeanClass( something1 == "car" && something2 == somevalue2)
    then
        m.setSomeThing(someOtherValue);
        update(m);
    end

在触发所有规则时,所有规则都会被执行,我不希望。如果“something1”不等于“train”,那么我希望执行流程直接进入第 41 条规则,就像这里的规则“2”。

请提出建议。

谢谢, 沙杜尔

【问题讨论】:

    标签: nested drools rules rule


    【解决方案1】:

    我会为“car”、“bus”和“train”设置三个范围规则来设置一个值,然后 41 规则接受该范围值并对其进行操作。

    您仍然需要编写 44 条规则,但您不必为每个作用域案例重复 41 条。

    【讨论】:

    • 谢谢@duffymo!所以,你建议我应该在前 40 条规则中设置另一个变量,这样如果“something1”不等于“train”,它就不会执行前 40 条。另外,我不确定“范围规则”是什么方法。 -Shardul
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 2015-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-30
    • 2018-06-17
    • 1970-01-01
    相关资源
    最近更新 更多