繁体   English   中英

在部分流口水规则中使用全局变量

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM