我想在drl文件中声明一个布尔变量,并希望根据该变量的值编写规则。我无法找到任何好的例子。
我试过了:
宣布国旗 flag:布尔值 端
在其中一条规则中,我正在修改如下:
flag = Boolean.TRUE;
我的规则是
规则“< 210>确定标志” 什么时候 标志(flag == true)
但由于旗帜无法解决,所以它给了我错误。
答案 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"