使用布尔变量流失规则

时间:2016-11-04 17:05:45

标签: drools

我想在drl文件中声明一个布尔变量,并希望根据该变量的值编写规则。我无法找到任何好的例子。

我试过了:

宣布国旗     flag:布尔值 端

在其中一条规则中,我正在修改如下:

flag = Boolean.TRUE;

我的规则是

规则“< 210>确定标志”     什么时候         标志(flag == true)

但由于旗帜无法解决,所以它给了我错误。

2 个答案:

答案 0 :(得分:2)

你不能以通常的方式声明变量,因为(我认为)你正试图这样做。请阅读Drools文档并区分绑定变量全局变量事实及其字段和右侧局部变量(在静态Java中)法)。

要查看具有布尔字段的declare如何工作,请使用以下DRL代码:

declare Flag
  flag: Boolean
end

rule "hoist a Flag"
when
    not Flag()
then
    insert( new Flag( true ) );
end

rule "a true Flag"
when
    Flag( flag )
then
    System.out.println( "The Flag.flag is true." );
end

答案 1 :(得分:0)

您可以使用以下内容:

rule "Test"
   when
      a: TestClass( getFlag())
   then
      //some action
end

另请参阅此答案:Drools Rule - writing rule against boolean field, name starting with "is"