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
答案 0 :(得分:0)
您需要一些绑定到变量的特定SSCData
,否则您无法引用更改其字段的事实。这会修改工作记忆中的all
SSCDat`:
rule x
when
exists BlueReport()
sscData: SSCDate()
then
sscData.setORIG_LOC_CD("SLR");
sscData.setSERVICE_CD("SLIC");
sscData.appendRuleAudit(drools.getRule().getName());
end
您无法在exists
之后绑定到模式,因为这对于任意正数匹配事实都会成功一次。
答案 1 :(得分:0)