首页 文章

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

提问于
浏览
0

我有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("");它工作正常 .
但是如果我使用多个事实,那么它将停止处理会话中所有事实的规则流组 .

1 回答

  • 1

    除了纠缠于彼此争斗的各种规则属性之外,删除锁定活动并且不添加激活组,但考虑条件以使基本LHS逻辑执行要求所说的 .

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

相关问题