坑1:Double类型+=操作符计算问题
如下DRL规则代码,其中baseCustomerCharge为Double类型,后面+=为40整形,结果,Drools执行后根本不会去加,写成 $p.baseCustomerCharge += 40.0 问题解决。
rule "rule1"
salience 187
lock-on-active true
when
$p : PackageFact(test == 100 )
then
$p.baseCustomerCharge += 40;
end
坑2:xx Field is not visible,dialect为java时,不能采用obj.field的方式访问,会报错not visible,如下面所示,有时候不注意就会写成mvel风格
rule "Special Handling Fee Rule"
salience 94
dialect "java"
when
$f : OrderFact()
then
$f.setPrice(23.5);//正确
$f.price = 3.5; //错误
end