我有一个基于TaskPlanning示例的简单规则。它看起来像这样:
rule "It is better if user does not overexceeds its hours"
when
$emp : Employee()
$task : Task( $taskType : taskType, employee == $emp)
accumulate( Task(employee == $emp);
$minutesOfEmplSpend : sum($taskType.getBaseDuration());
$emp.getMinutesAvailable() < $minutesOfEmplSpend
)
then
scoreHolder.addMediumConstraintMatch(kcontext,
$emp.getMinutesAvailable()-$minutesOfEmplSpend);
end
好吧,它正在发挥作用。但我还想在那里增加额外的约束。 $ task 变量具有 isSerious 属性,该属性包含布尔值。我希望在添加媒介约束时也要考虑它。
我想实现这样的目标:
scoreHolder.addMediumConstraintMatch(kcontext,
$emp.getMinutesAvailable()-$minutesOfEmplSpend - ($task.isSerious == true ? 100 : 10) ));
但我收到规则错误。我想我已经尝试了一切 - 请至少指出我正确的方向。
答案 0 :(得分:1)
正常的Java代码应该有效,请尝试$task.isSerious()
而不是$task.isSerious