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

Drools中规则的多重结束

阙奇思
2023-03-14

我对口水和探索完全陌生。到目前为止,我一直在使用一个规则和withing,我们使用if条件,就像Java一样。

2.我会使用函数,我知道的是用java编写函数并导入它们。

3.是否有可能在Drools中创建函数,并像在Java中一样使用?

我并没有以它应该使用的方式使用Drools,但到目前为止,规则还没有我们现在使用的规则那么复杂。任何帮助对我都是有用的。

rule "my rule"
when
#some condition

then

 if(){

 end

 }else if(){

 #do something

 }

 if(){

  #do some other logic

}
 end
When

object:SomeObject(); // This helps for my camel code to trigger this rule and this rule only

then

if(){

}
else if()
{

return;
}else if() {
}

if(){

}else if(){
return;
}
if(){

}
end

共有1个答案

籍光熙
2023-03-14

我不知道你说的“打破一系列规则”是什么意思。当没有更多的规则激活要执行时,iteself会结束对规则的评估,

1的答案。-3.:

>

  • 否。-没有这样的东西我可以与术语“回应”联系起来,但没有“多个结束陈述[一个规则]”。

    是的,您可以使用静态Java函数:导入类,调用它,就像在Java中一样。

    是的。Drools手册中有一个标题为“函数”的部分对此进行了解释。示例来自手册:

    函数字符串hello(字符串名称){返回“hello”+name+“!”;}

    后来,由于可能的Guvnor bug的变通-不接受返回;

    boolean skip = false;
    if(){
    } else 
    if() {
        skip = true; // return;
    } else 
    if() {
    }
    if( ! skip ){
        if(){
        } else
        if(){
            skip = true; // return;
        }
     }
    if( ! skip ){
        if (){
        }
    }
    

    结束

  •  类似资料:
    • 我创建了一个规则,其“when”条件如下:- 上述条件运行良好。现在我如何在一个规则中添加多个布尔条件?为(如)。上面的规则可以概括为:a和b,所以如果我想创建一个规则:(a和b)或c,那么它的实际drl语法是什么。我对drools是新手,所以请帮助我了解规则(a和b)或C的语法。 我确实创建了一个语法 错误消息:Message[id=1,level=Error,path=mapiteration

    • 我是流口水的新手,熟悉使用扩展关键字来继承规则。问题是有没有办法继承多个规则?这类似于在java类上使用多个接口。这是一个我希望它如何工作的示例,但我在规则3上遇到错误:

    • 我的问题是: 在Drools规则中,有没有一种方法可以拦截“成功”事件?为了更好地解释。。。有一种方法可以在规则的所有条件都为真时调用侦听器? 注意:我不想设置一个全局对象(在会话上)来管理规则的“然后”子句中的这个条件。 我正在寻找一个已经在Drools上实现的解决方案 规则示例

    • 在为我的项目实现了一些规则之后,我做了一个“ScoreConsistencyCheck”,以确保规则得到了正确的实现。 表示实现我自己的方法,该方法将在我提前终止求解或通过配置终止后调用,输出预期分数。该方法的参数是一个实例,基于解决方案的状态计算预期分数,然后将其与来自解决方案实例的“分数”变量的分数进行比较。 当我使用时,它不会抛出异常,但是当我这样尝试时,我有时会在构建启发式或本地搜索的特定

    • 我正在向drools规则引擎插入数据,但我无法理解它是如何处理插入的数据的。插入数据的代码是: