Je dois déclencher une règle si une collection n'a pas d'objet spécifique.drools n'existe pas dans la collection
AuditAssignment est disponible sous forme de problème.
AuditAssignment possède une propriété "requiredSkill"
mission d'audit a une propriété "vérificateur"
objet Commissaire aux comptes a une liste de "qualifications", qui est une collection de "requiredSkill"
Maintenant, J'ai besoin de vérifier, si les qualifications de l'auditeur dans l'objet auditassignment a le requisSkill
Ci-dessous est l'exemple de règle que j'ai essayé mais ne fonctionne pas.
rule "checkIfAuditSkillIsMatching"
when
$auditAssignment : AuditAssignment($neededSkill : requiredSkill.getSkillCode())
$auditor : Auditor($auditorSkills : qualifications)
not exists (Skill (skillCode == $neededSkill) from $auditorSkills )
then
System.out.println(" **** " + $neededSkill);
scoreHolder.addHardConstraintMatch(kcontext, -1);
end
J'ai essayé le ci-dessous un aussi
rule "checkIfAuditSkillIsMatching"
when
$validAuditorCount : Number (intValue < 1 ) from accumulate (
$auditor : Auditor($auditorSkills: qualifications)
and exists AuditAssignment(auditor == $auditor ,
$auditorSkills.contains(requiredSkill)) ,
count($auditor)
)
then
scoreHolder.addHardConstraintMatch(kcontext, -1);
end
Merci. va essayer cela. – lives
Désolé - Je pense que je n'ai pas indiqué le problème correctement. J'ai reformulé le problème – lives