修改关键字不工作Drools

时间:2017-11-12 11:30:08

标签: drools jbpm

我正在使用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,但它只被解雇一次。

任何人都可以告诉我原因。

2 个答案:

答案 0 :(得分:1)

通过添加以下行来禁用Drools 7中Kmodule.xml中的属性:

<configuration>
  <property key="drools.propertySpecific" value="ALLOWED"/>
</configuration>

答案 1 :(得分:0)

第一个显而易见的问题是,如果你确定你的规则确实被执行了(听起来像一个愚蠢的问题,但它在SO中解决了许多问题)。

其他一些相关问题是:

  • 您使用的是Drools的哪个版本?
  • limit是一个java类吗?或您的DRL中的明确声明?
  • 你知道你的kbase中是否启用了 Property Reactive 吗?它曾经在版本中被禁用&lt; 7,但由于默认情况下启用了版本7。

希望它有所帮助,