使用 Drools 7.21 的 when 部分中的布尔值
Boolean value in when section using Drools 7.21
我正在尝试将 Drools 从版本 5.2 迁移到 7.21。我将代码重建为 KIE API,一切看起来都很好,但现在我在 DRL 文件中遇到了问题。在 Drools 文件的 "when" 部分,我需要使用语句 "finished != true"。在 v5.2 中它工作正常,但在 v7.21 中不...
我的代码:
rule"..."
when
element : Operation( person.id == $person.getId(), finished != true )
then
(...)
end
我做了一些测试,结果很奇怪:
- finished != true -> 它不起作用,所有带有 "finished == true" 的对象也在结果中
- finished == false -> 同上
- 完成 -> 它工作正常,结果中只有带有 "finished == true" 的对象
- 已完成 == true -> 同上
我需要使用 finished != true 或类似的东西。我该如何解决?是新版Drools的错误吗?
我找到了适合我的解决方法。如果有人有更好的方法,请在这里分享。
rule"..."
when
$booleanTrue : Boolean(booleanValue == true) from 1 == 1
element : Operation( person.id == $person.getId(), finished != $booleanTrue )
then
(...)
end
下面简单使用:
rule"..."
when
element : Operation( person.id == $person.getId(), finished)
then
(...)
end
或者
rule"..."
when
element : Operation( person.id == $person.getId(), !finished)
then
(...)
end
我正在尝试将 Drools 从版本 5.2 迁移到 7.21。我将代码重建为 KIE API,一切看起来都很好,但现在我在 DRL 文件中遇到了问题。在 Drools 文件的 "when" 部分,我需要使用语句 "finished != true"。在 v5.2 中它工作正常,但在 v7.21 中不...
我的代码:
rule"..."
when
element : Operation( person.id == $person.getId(), finished != true )
then
(...)
end
我做了一些测试,结果很奇怪:
- finished != true -> 它不起作用,所有带有 "finished == true" 的对象也在结果中
- finished == false -> 同上
- 完成 -> 它工作正常,结果中只有带有 "finished == true" 的对象
- 已完成 == true -> 同上
我需要使用 finished != true 或类似的东西。我该如何解决?是新版Drools的错误吗?
我找到了适合我的解决方法。如果有人有更好的方法,请在这里分享。
rule"..."
when
$booleanTrue : Boolean(booleanValue == true) from 1 == 1
element : Operation( person.id == $person.getId(), finished != $booleanTrue )
then
(...)
end
下面简单使用:
rule"..."
when
element : Operation( person.id == $person.getId(), finished)
then
(...)
end
或者
rule"..."
when
element : Operation( person.id == $person.getId(), !finished)
then
(...)
end