为每个事实查找规则 fired/matched

Find rules fired/matched for each fact

有没有办法找出每当我插入事实 (POJO)(或每当我触发所有规则)时匹配(触发)的规则。 我需要弄清楚规则的哪些事实 none 被解雇了,以及对于每个事实哪些规则被解雇了一些可视化 activity。

接口 org.kie.api.event.rule.AgendaEventListener 的实现方法 void beforeMatchFired(BeforeMatchFiredEvent event)。该事件将告诉您一个匹配项:Match getMatch(),并且该匹配项会告诉您事实:List<? extends FactHandle> getFactHandles() 和规则:Rule getRule().

如果您想使用另一个侦听器来跟踪插入的事实,可以使用 org.kie.api.event.rule.DebugRuleRuntimeEventListener,但您也可以在插入事实的应用程序代码中这样做。

我猜你可以想象剩下的:将这些信息存储在 Map 中并对其进行评估是一个简单的练习。