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.