Ich muss eine Regel auslösen, wenn eine Sammlung kein bestimmtes Objekt hat.Drools existiert nicht in der Sammlung
AuditAssignment ist als Problem verfügbar.
AuditAssignment hat eine Eigenschaft "requiredSkill"
Prüfungsauftrag eine Eigenschaft "Betriebsprüfer"
Auditor Objekt hat eine Liste von "Qualifikationen" hat, die eine Sammlung von "requiredSkill" ist
Jetzt, Ich muss überprüfen, ob die Qualifikationen des Auditors in der Auditassignment Objekt hat die erforderlicheSkill
Unten ist Beispielregel, die ich versuchte, aber nicht funktioniert.
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
Ich habe die unten ein und versucht
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
Dank. werde das ausprobieren. – lives
Entschuldigung - Ich habe das Problem nicht richtig angegeben. Ich habe das Problem umformuliert – lives