J'ai une règle simple basée sur l'exemple TaskPlanning. Cela ressemble à ceci:Définition d'une variable/d'un fait local dans le moteur de règles Drools
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
Et OK, cela fonctionne. Mais je voudrais aussi ajouter une contrainte supplémentaire là-bas. $ tâche variable a isSerious propriété, qui contient une valeur booléenne. Je voudrais qu'il soit également pris en compte lors de l'ajout d'une contrainte moyenne.
Je voudrais réaliser quelque chose comme ceci:
scoreHolder.addMediumConstraintMatch(kcontext,
$emp.getMinutesAvailable()-$minutesOfEmplSpend - ($task.isSerious == true ? 100 : 10)));
Mais je reçois des erreurs de règles. Je pense que j'ai tout essayé - s'il vous plaît au moins me diriger vers la bonne direction.
qui a fait l'affaire! J'ai juré que j'ai essayé ça cent fois! – Chlebik