修改关键字不起作用 Drools
Modify keyword not working Drools
我正在使用 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,但它只被触发了一次。
谁能告诉我原因。
第一个明显的问题是您是否确定您的规则确实得到了执行(听起来像一个愚蠢的问题,但它已经解决了 SO 中的许多问题)。
其他一些相关问题是:
- 您使用的是哪个版本的 Drools?
PromotionFact
是 java class 吗?或您的 DRL 中定义的声明?
- 您知道您的 kbase 中是否启用了 Property Reactive 吗?它曾经在 < 7 的版本中被禁用,但由于默认情况下启用了版本 7。
希望对您有所帮助,
通过添加以下行在 Drools 7 的 Kmodule.xml 中禁用 属性 反应:
<configuration>
<property key="drools.propertySpecific" value="ALLOWED"/>
</configuration>
我正在使用 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,但它只被触发了一次。
谁能告诉我原因。
第一个明显的问题是您是否确定您的规则确实得到了执行(听起来像一个愚蠢的问题,但它已经解决了 SO 中的许多问题)。
其他一些相关问题是:
- 您使用的是哪个版本的 Drools?
PromotionFact
是 java class 吗?或您的 DRL 中定义的声明?- 您知道您的 kbase 中是否启用了 Property Reactive 吗?它曾经在 < 7 的版本中被禁用,但由于默认情况下启用了版本 7。
希望对您有所帮助,
通过添加以下行在 Drools 7 的 Kmodule.xml 中禁用 属性 反应:
<configuration>
<property key="drools.propertySpecific" value="ALLOWED"/>
</configuration>