2017-01-02 4 views
0

Ich habe mehrere Regeln in einer Drl-Datei, die ich in eine Entscheidungstabelle XLS-Datei konvertieren möchte.Wie kann ich mehrere Regeln in einer Entscheidungstabelle Excel-Datei für die Verwendung in Drools geben?

Die TFL Regeldatei:

package com.src.rules; 

global java.util.Map outMap 


rule abc 

when 
$measureFact : MeasureFact(name == "ABC") 

then 
boolean result1 = $measureFact.ruleId[422] && $measureFact.ruleId[423] && $measureFact.ruleId[372] && $measureFact.ruleId[373]; 
boolean result2 = result1 && $measureFact.ruleId[272]; 
boolean result3 = result1 && $measureFact.ruleId[273]; 

outMap.put(1, result1); 
outMap.put(2, result2); 
outMap.put(5, result3); 


end 


rule def 

when 
$measureFact : MeasureFact(name == "DEF") 

then 
boolean result1 =$measureFact.ruleId[395] && $measureFact.ruleId[401] && $measureFact.ruleId[325] && $measureFact.ruleId[331] 
         && $measureFact.ruleId[22] && $measureFact.ruleId[332]; 
boolean result2 = result1 && ($measureFact.ruleId[402] || $measureFact.ruleId[403]); 


outMap.put(1, result1); 
outMap.put(2, result2); 

end 

Ab jetzt kann ich nur eine Regel zum Laufen bringen, aber das auch ohne einen Wert wie ‚TRUE‘ oder ‚falsch‘ zu geben, wird es nicht funktionieren . Nun, wie kann ich mehrere Regeln wie diese in der Excel-Datei geben?

Entscheidungstabelle Excel-Datei:

The decision table

Antwort

0

Es ist ziemlich offensichtlich, dass Sie dies über eine Entscheidungstabelle nicht tun können, wie sie definiert ist und in geifert umgesetzt.

Die linke Seite ist nicht das Problem, aber die rechte Seite ist.

Nicht zu wissen, was vor sich geht, wenn

MeasureFact(name == "GHI") 

und so weiter, kann ich nur, dass Sie die rechte Seite Aktionen in Java-Code vorschlagen und die Aktion von der rechten Seite Code aufrufen.

+0

Ich habe eine Problemumgehung gefunden, indem ich den Aktionsteil mit true vertauschte und den Wert zu $ ​​param änderte. Ich werde die Antwort hier posten. – Vishnu

Verwandte Themen