[英]Use of global variable in when part of drools rule
我在规则文件中声明了“ Employee”类型的全局变量。 我必须编写一条规则,在该规则中,我可以将全局雇员对象的某些字段与“人员”对象的字段进行比较。 我怎样才能做到这一点 ? 按照规则,我尝试了不起作用:
global Employee emp;
rule "abc"
when
$person : Person(joinDate == null , emp.joinDate != null , notify == false)
then
$person.setNotify(Person.NOTIFY);
update($person);
end
rule "cde"
when
$person : Person(joinDate != null , ! joinDate.equals(emp.joinDate) , notify == false)
then
$person.setNotify(Person.NOTIFY);
update($person);
end
如何比较作为全局变量注入的一个bean的属性与另一个bean的属性?
您很可能会更改全球emp
的值,并希望该规则能够生效,这是不行的。
可以在有条件的情况下使用全局变量,但由于规则引擎无法知道全局变量已被更改,因此可以假定它们保持稳定。
如果您希望规则对更改的数据做出反应,请插入事实。 这就是为什么我们有它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.