0

我有一个包含 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”一样。

请建议。

谢谢, 沙杜尔

4

1 回答 1

0

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

您仍然必须编写 44 条规则,但您不必为每个范围案例重复 41 条。

于 2013-06-23T12:23:48.477 回答