Я хотел бы представить следующее правило:
rule "nonHomogeneousDistributionOnPeriod"
when
RosterParametrization($index : planningWindowStart.Date.toEpochDay)
$myObject: MyObject($myObjectId: myObjectId, level == 3)
$assignments : ArrayList() from collect(DutyAssignment(
myObjectId == $myObjectId
&& dutyDateDayIndex >= $index
&& duty.dutyType.type == "DAY"
))
eval($myObject.calculateDutyDistribution($assignments, 20) < 0)
then
scoreHolder.addHardConstraintMatch(kcontext, -30);
end
В режиме FULL_ASSERT эти правила вызывают ошибку «java.lang.IllegalStateException: constraintMatchTotal ... не удалось удалить constraintMatch ....». Похоже, что именно конструкция $ assignments и является основной причиной, поскольку комментирование eval не имеет никакого эффекта. Я использую тот же шаблон на других правилах с тем же эффектом. DutyAssignment - это мой PlanningEntity, а MyObject - это эквивалент Nurse in NurseRostering sample.
Есть идеи?