使用 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 或类似的东西。我该如何解决?是新版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