2016-07-11 10 views
0

Nehmen wir an, wir haben viele Person() - Objekte mit zwei Attributen "Postleitzahl" und "Name". Ich möchte, dass eine Regel für alle Objekte mit demselben Wert für das Attribut "Postleitzahl" nur einmal ausgelöst wird. Als Beispiel, wenn es 10 Person Objekte p1, p2 ..... p10 gibt, so dass 5 Person Objekte Zip Code = 1 und andere 5 Personen Objekte die Zip Code = 2 haben, möchte ich eine Regel, die zweimal ausgelöst wird, dh einmal für alle Personenobjekte mit Postleitzahl = 1 und noch einmal für alle Personenobjekte mit Postleitzahl = 2.Objekte, die ein spezifisches Attribut mit einem gemeinsamen Wert haben, lösen eine Regel aus. Der gemeinsame Wert ist nicht bekannt und kann in der Regeldatei nicht fest codiert werden.

Antwort

0
rule "once for each zipcode" 
when 
    $zcs: Set() from accumulate(Person($h: zipcode), collectSet($h)) 
    $zipcode: Object() from $zcs 
    $ps: List() from collect(Person(zipcode == $zipcode)) 
then 
    //... 
end 
+0

Vielen Dank. Funktioniert perfekt. – Sourabh