Drools:变量不能在绑定内部使用

时间:2013-08-13 10:42:41

标签: drools drools-planner optaplanner

我收到错误

  

变量不能在绑定中使用

关于以下Drools规则代码

rule "minGapsBetweenAppointments"
when
    $leftAssignment : AppointmentRequest(feasibleAppointment != null)
    $totalValue : Number( ) from accumulate(
            AppointmentRequest(feasibleAppointment != null,
                    $leftAssignment.requestId != requestId,
                    $quality : this.getOccupiedSurroundingsValue($leftAssignment)),
            sum( $quality )
            ) // ERROR LINE
then
    scoreHolder.addSoftConstraintMatch(kcontext, $totalValue.intValue());
end

虽然我从另一个问题中找到了这个post,但它并没有给我太多帮助,因为我需要为所有其他AppointmentRequests调用函数 getOc​​cupiedSurroundingsValue ,因为它们是相关的。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

该代码应该有效。就我所见,它没有任何问题。 仔细检查它是否与您执行它的代码完全相同。我在我的例子和那些工作中使用了类似的代码。

如果没关系,那么它可能是Drools Expert中的一个错误。 有两种方法可以继续:

  • 简单的方法:在the drools mailing list重新发布这个问题,也许埃德森或沃尔夫冈看到了我不知道的事情。如果没有人发现用户错误,请发布jira。

  • 解决问题的最快方法:在MiscTest中创建一个新的测试,以证明您的情况并将其作为拉取请求提交。要么你发现你做错了什么,要么你毫无疑问地证明了我们需要解决的错误:)