在哪里可以查看模式是否在规则中失败?



我运行一个包含几个模式的规则,我想知道哪个模式失败了:

我尝试调试代码(流口水 7.18.0(,但没有找到相关位置。

规则示例:

rule "Trigger"
agenda-group "Trigger"
salience 100
when
$pcase : PCaseMgr()
D1($id: id, type != null, type == "AAA")
D2(aId == $id)
then
$pcase.printAnalyticsRuleLog(">>>>>>>>>>>>>>>>>>> In Trigger");
end

在上面的例子中,如果传递了 D1 模式,并且 D2 模式失败,那么在代码(口水 7.18.0(中的哪个位置可以查看模式是否失败?

你不能。由于 Drools 在内部使用的算法,模式被分解为节点,节点可以在知识库中的多个规则之间共享。如果你真的需要知道为什么一个规则没有被触发,那么你可以创建其他规则来告诉你这一点。在您的示例中,您可以创建如下内容:

rule "No Trigger because of No D2"
agenda-group "Trigger"
salience 100
when
$pcase : PCaseMgr()
D1($id: id, type != null, type == "AAA")
not D2(aId == $id)
then
$pcase.printAnalyticsRuleLog(">>>>>>>>>>>>>>>>>>> No Trigger because no D2");
end

希望对您有所帮助,

最新更新