Drools 5-我想测试是否存在BLueReport对象和SSCData对象,如果两者都存在,则分配一些默认值。我已经尝试了许多条件,但没有成功。
6-------------------------------------------------------------------------------
7| CONDITION | CONDITION | ACTION |
8| exists BlueReport | exists SSCData | sscData.setORIG_LOC_CD($param); |
9| | | Set Location Code |
10| | | "SLR" |
11------------------------------------------------------------------------------- ..。我还尝试了这个:
6-------------------------------------------------------------------------------
7| CONDITION | CONDITION | ACTION |
8| exists BlueReport | exists SSCData | sscData.setORIG_LOC_CD($param); |
9| eval(true) | eval(true) | Set Location Code |
10| | | "SLR" |
11-------------------------------------------------------------------------------我有一个测试代理,它将Excel DT编译为DRL文件,并报告结果:
//generated from Decision Table
import mypackage.cost.model.*;
// rule values at A11, header at A6
rule "DIV 07"
salience 65525
when
then
sscData.setORIG_LOC_CD("SLR");
sscData.setSERVICE_CD("SLIC");
sscData.appendRuleAudit(drools.getRule().getName());
end我已经到了这一步,但不知道在第9行中放什么:

发布于 2017-12-06 07:48:40
你需要一些特定的SSCData绑定到一个变量,否则你不能引用一个事实来改变它的字段。修改工作内存中的allSSCDat`:
rule x
when
exists BlueReport()
sscData: SSCDate()
then
sscData.setORIG_LOC_CD("SLR");
sscData.setSERVICE_CD("SLIC");
sscData.appendRuleAudit(drools.getRule().getName());
end您不能在exists之后绑定到模式,因为对于任意正数量的匹配事实,此操作只成功一次。
发布于 2017-12-07 06:44:42
以下是我提出的最终解决方案:

https://stackoverflow.com/questions/47661492
复制相似问题