首页 文章

Drools 6许多议程组声明

提问于
浏览
-1

我可以在Drools 6中为同一规则只有一个议程组声明吗?

我可以这个吗?

rule "rule_x"
agenda-group "group_x"
agenda-group "group_y"
when

then
end

当几个小组聚焦时,我想激活这个规则 .

1 回答

  • 2

    大多数规则属性只是语法糖,而议程组是其中之一 . 通过回退到逻辑模式很容易实现相同的效果 .

    限定

    class Group { private String name; ... }
    

    并使用它的一个实例作为表示当前活动组的事实 . 规则必须显示其他模式:

    rule in-group-one
    when
        Group( name == "one" )
        ...
    

    如果规则同时在几个组中:

    rule in-groups-one-two
    when
        Group( name in ("one", "two") )
    

    您还可以模仿议程组堆叠的行为 .

    Later 应该非常仔细地考虑同时关注多个小组的想法 . 虽然很明显,当这三个群体成为焦点时,群组a,b和c中的规则应该触发,但是根本不清楚群组a和b中的规则应该发生什么,或者群组中的另一个规则a ,c和d . 无论发生什么事情都可以用逻辑来表达,但它是否有意义,而且(更重要的是)它是否有用?

相关问题