2017-01-02 44 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

相关问题