我们正在使用Drools 6。

我所有的规则都分为两类:预取规则和主要规则。

我想以某种方式首先触发由议程组“prefetch”定义的所有规则,然后在完成后再触发议程组“mainRules”。

想知道,是否有可能做到这一点,并在外部激发所有规则并且仍然共享两者之间的上下文的情况下,从外部激发议程小组?

我在某处看到了方法“setAgendaFilter”,但在无状态会话中找不到该方法,不确定在Drools 6中是否已将其删除。

谁可以帮我这个事?

PS .:在组'prefetch'中的规则内部,我们有'insert',以便它导致再次触发规则,我不希望这导致在组'mainRules'中触发规则

最佳答案

使用StatefulKnowledgeSession(5.x)或KieSession(6.x)kSession或

kSession.getAgenda().getAgendaGroup( "prefetch" ).setFocus();
kSession.fireAllRules();
kSession.getAgenda().getAgendaGroup( "mainRules" ).setFocus();
kSession.fireAllRules();

放松,看着他们眨眼。

关于java - 流口水分别解散议程小组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21975213/

10-09 15:47