在DROOLS Expert中,我想在触发任何一条规则后跳过规则流组(激活组不工作)

时间:2014-02-14 15:41:07

标签: drools rule-engine

我有5个规则组,每个规则组都有多个规则。

rule "R1"  
    dialect "mvel"  
    ruleflow-group 'RG1'    
    lock-on-active true

rule "R2"  
    dialect "mvel"  
    ruleflow-group 'RG1'    
    lock-on-active true

rule "R3"  
    dialect "mvel"  
    ruleflow-group 'RG1'    
    lock-on-active true

rule "AR4"  
    dialect "mvel"  
    ruleflow-group 'ARG2'   
    lock-on-active true

rule "AR5"  
    dialect "mvel"  
    ruleflow-group 'ARG2'   
    lock-on-active true

我在kiesession中插入了多个相同类型的事实。其中20个 我在会话中运行fireallrules并正确评估所有事实。

但是现在有一个新要求,如果R1触发,那么我们必须跳过规则组RG1以获得该事实,然后转到ARG2规则。

我尝试将激活组'ACTRG1'添加到规则流组'RG1'和激活组'ACTRG2'中的所有规则到规则流组'ARG2'中的所有规则,并且它没有触发任何规则。

我正在使用DROOLS 6.0.0.Final。

感谢任何帮助。如果您需要更多详细信息,我将很乐意为您提供。

还有一件事是,如果我一次将一个事实插入kiesession,那么我可以使用drools.getWorkingMemory()。clearRuleFlowGroup(“{agenda}”);它工作正常 但是如果我使用多个事实,那么它会停止处理会话中所有事实的规则流组。

1 个答案:

答案 0 :(得分:1)

不要纠结于各种规则属性之间相互争斗,删除锁定活动而不添加激活组,但要考虑使基本LHS逻辑符合要求所说的条件。

如果您能够准确说明要求,我们可以帮助您确定详细信息。您需要的是分别将R1与R2和R3分开的补充条件,以及满足使您添加锁定活动的要求的逻辑。