在Drools中设置全局变量

时间:2009-11-30 10:18:20

标签: drools globals jboss-rules

如何在规则中设置Drools 4中的全局?如果规则触发,我想设置一个布尔值,以便它可以从另一个具有较低显着性的规则中读取它。

3 个答案:

答案 0 :(得分:1)

假设您正在使用Drools 5.x,您可以在规则后果中执行此操作:

kcontext.getKnowledgeRuntime()。setGlobal(name,value);

答案 1 :(得分:0)

您可以执行以下操作:

drools.getWorkingMemory()。setGlobal ...(类似于上面,kris所说的)。

答案 2 :(得分:0)

我不会在这里使用全球。你从其他事实推断出一个新的事实,你可以“插入”新事实并让其他规则解决。

rule "some rule"
when
    //…
then
    insert(new MyNewFact())
end

无法保证Drools会重新评估您的规则以响应插入(新)全局规则,而您的其他规则可能不会触发。但是,它会根据插入(或收回或修改)的事实进行重新评估。