当前位置: 首页 > 知识库问答 >
问题:

在DROOLS Expert中,我希望在任何一个规则被激发后跳过Ruleflow组(激活组不起作用)

刘阳荣
2023-03-14

我有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中插入一个事实,那么我就可以使用drools.getworkingmemory().ClearRuleFlow Group(“{议程}”);它工作得很好。
但是如果我使用多个事实,那么它将停止处理会话中所有事实的规则流组。

共有1个答案

许彭祖
2023-03-14

与其纠结于相互冲突的各种规则属性,不如删除锁定激活,也不要添加激活组,而是考虑条件,让基本的LHS逻辑按照需求所说的去做。

如果你能足够准确地陈述要求,我们可以帮助你制定细节。您需要的是分别将R1与R2和R3分开的互补条件,以及满足使您添加锁定激活的逻辑。

 类似资料:
  • 构造函数验证的代码: 如何测试对象: 我不知道为什么JavaScript版本与groovy版本的行为不同,我已经尝试更改了我能想到的所有组合,包括:、、、、和

  • 我是Drools Fusion的新手,我想知道为什么我的规则不总是被取消。我用的是Drools 6.3。以下是我要插入的事件: 这是我的规则文件: 这是我的输出: 我预计我的规则将触发2次,并给出以下输出: 我可能忽略了一些事情,但我没有找到关于我的问题的太多信息。有人能解释一下这里到底发生了什么吗?非常感谢。

  • 在我的场景中,我有两个excel电子表格(sheet1和sheet2),其中包含两个单独的决策表。在表1中,规则如下所示: 因此,如果a==1,b==2,将d设置为1,则设置d的命令是:<代码>修改(输入){setD(1)} Sheet2如下所示: 两个文件具有相同的ACTIVATION-GROUP(激活1)和相同的AGENDA-GROUP(议程1) 我使用的输入: 我希望为这两条规则中的每一条创

  • 我有两个事实,分别命名为OptionalCover和OptionalPremiumComponent,其中有OptionalPremiumComponent的参考。这就是我在工作记忆中插入的内容。 我在drools中创建了以下规则 问题是,插入父对象时没有触发上述规则。我还需要做些什么来实现这种行为吗?是否支持? 谢谢你。

  • 我的文件夹: 在文件my-plugin.php: 在文件class-my-plugin.php: 但当我激活或停用时,它不起作用。有人能帮我吗?