我的问题是:
在Drools规则中,有一种方法可以拦截“成功”事件吗? 为了更好地解释......当一个规则的所有条件都为真时,有一种方法可以调用一个监听器吗?
注意: 我不想设置一个全局对象(在会话中)来管理规则的“then”子句中的这个条件。
我正在寻找已经在Drools上实施的解决方案
规则样本
when
$p : Person(name == "James")
then
// implicit callback to the listener managed by drools
答案 0 :(得分:0)
在org.kie.api.event.rule
包中,有BeforeMatchFiredEvent
和AfterMatchFiredEvent
。使用方法AgendaEventListener
和/或void afterMatchFired(AfterMatchFiredEvent event)
实现接口void beforeMatchFired(BeforeMatchFiredEvent event)
。
您可以通过评估使用event参数传递的数据来了解被触发的规则和参与的事实。