1

我得到错误

变量不能在绑定中使用

在以下 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

尽管我从另一个问题中找到了这篇文章,但这对我没有多大帮助,因为我需要为所有其他 AppointmentRequests 调用函数getOc​​cupiedSurroundingsValue,因为它们是相关的。

任何帮助表示赞赏。

4

1 回答 1

0

该代码应该可以工作。据我所知,它没有任何问题。仔细检查它是否与您正在执行的代码完全相同。我在示例中使用了类似的代码并且这些代码有效。

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

  • 最简单的方法:在 drools 邮件列表上重新发布这个问题,也许 Edson 或 Wolfgang 看到了我没有看到的东西。如果没有人看到用户错误,请发布 jira。

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

于 2013-08-16T13:11:41.163 回答