2017-02-08 5 views
0

Ich habe das Gefühl, dass es keine einfache Antwort auf diese Frage geben kann.Drools Entscheidungstabelle "nicht" Aussage

Nehmen wir an, dies ist meine Entscheidungstabelle, die auf einer Objektinstanz namens "input" operiert.

CONDITION  CONDITION  ACTION 
a == $param b != $param input.setC($param) 

1    5    11 
1    6    11 

Mein Fall ist, dass, wenn a nicht gleich 1 ist, und B ist nicht in (5,6) so eingestellt C bis 11. Wenn jedoch b 6 ist, wird die erste Regel nach wie vor Feuer, da b ist nicht 5, also c auf 11 setzen.

Ich möchte die Organisation der Spalten beibehalten, ohne mehrere Werte in eine Spalte setzen zu müssen.

FRAGE: Gibt es eine Art von Header, den ich verwenden kann, der im Grunde die Entscheidungstabelle in eine einzige Regel verwandelt, wo b in keiner der Zeilen sein wird, wo a 1 ist? Oder eine alternative Methode?

Ich bin versucht, mit der Negation der Regel zu gehen:

CONDITION  CONDITION  ACTION 
a == $param b == $param input.setC($param) 

1    1    11 
1    2    11 
1    3    11 
1    4    11 
1    7    11 
1    8    11 

Es gibt viel mehr in dieser Tabelle und das macht es schwieriger zu halten.

Antwort

0

Wenn Sie XLS-Entscheidungstabelle verwenden, sollte eine ähnliche wie diese funktionieren. enter image description here

Wenn Sie mit Drools oder jbpm Workbench vertraut sind, kann ich Ihnen auch eine Lösung basierend auf Geführten Entscheidungstabellen anbieten.

Hoffen Sie, dass dies hilft und lassen Sie mich wissen.

Verwandte Themen