我正在使用Modify关键字测试无限循环。
但它没有重新触发规则。
规则1:
rule "Entitle for promotion"
when
$i: EmployeeFinancialFact(rating==Rating.ONE.getRating())
then
PromotionFact $promotion=new PromotionFact($i.getEmpID(),$i.getEmpName());
insert($promotion);
end
规则2:
rule "Print EmployeeFinancialFact name entitled for promotion"
when
$p: PromotionFact()
then
modify($p) {setSentForApproval(true);}
end
我期待规则2的RHS将再次触发规则2,但它只被解雇一次。
任何人都可以告诉我原因。
答案 0 :(得分:1)
通过添加以下行来禁用Drools 7中Kmodule.xml中的属性:
<configuration>
<property key="drools.propertySpecific" value="ALLOWED"/>
</configuration>
答案 1 :(得分:0)
第一个显而易见的问题是,如果你确定你的规则确实被执行了(听起来像一个愚蠢的问题,但它在SO中解决了许多问题)。
其他一些相关问题是:
limit
是一个java类吗?或您的DRL中的明确声明? 希望它有所帮助,