[英]Drools changing state in LHS using Stateless Knowledge session
我在这里列出我的问题。
这些是我的活动:
这些是我的规则。
现在我希望将1和3组合在一起。
如:4。如果具有完成属性状态的学生进入房间,则提醒教师。
现在正如我之前所说的那样,两个事件分别来了 因此,在2个不同的规则中处理它更容易。 但是当我想创建一个规则,它是规则4中的1和3的组合,那么我必须验证一个人进入一个房间是否是一个学生,如果他的属性“完整”。
但是,即使在验证他是否是学生之前加载状态属性,对我来说听起来也不好。 所以,我想调用一个只在加载属性的方法
“一个人是学生,并且有一条规则试图加载属性状态”。
我打算通过LHS中的方法调用来完成它,这不是直截了当的。
还有其他方法,我可以处理吗?
在大多数时间内制定识别特定情况的小规则比使用复杂规则来识别混合情况要好。 我不清楚的是你是否想用规则4取代规则3。 我将离开规则3并创建规则4如下:
when
PersonEnteringRoom($p: person, $r: room, person.type == "Student", person.status == "Complete") // status was set by rule 3.
Room(this == $r, $t: currentTeacher != null) //the relation could be stablished by rule 1
then
Notifier.notify($t, "The student has completed the course", $p);
end
当然,此规则是否适合您取决于其他因素,如执行周期。
希望能帮助到你,
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.