2017-01-02 46 views
0

我有一個drl文件中的多個規則,我想轉換成決策表xls文件。如何在決策表excel文件中使用多個規則用於流口水?

的DRL規則文件:

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 

截至目前我能得到只有一個規則的工作,但也沒有給喜歡「真」或「假」一定的價值,它不會工作。現在,我如何在Excel文件中給出這樣的多個規則?

決策表excel文件:

The decision table

回答

0

這是相當明顯的,因爲它被定義在Drools的實施無法通過決策表做到這一點。

左側不是問題,但右側是。

不知道發生什麼事情的時候

MeasureFact(name == "GHI") 

等等,我只能建議你代碼的Java右手邊行動,並呼籲通過右側的代碼的動作。

+0

我找到了一個解決方法,用true替換了action部分,並將true改爲$ param。我會在這裏發佈答案。 – Vishnu

相關問題