如何在StatelessKieSession drools中设置AgendaGroup

时间:2018-05-17 16:41:52

标签: java drools rule-engine

我有一个场景,我希望将StatelessKieSession与议程组一起使用。 StatelessKieSession没有任何方法可以将焦点设置为特定AgendaGroup,例如正常KieSession,如下所示

KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId());
KieSession kSession = kContainer.newKieSession();
kSession.getAgenda().getAgendaGroup("us").setFocus();

如何使用StatelessKieSession

设置对特定议程组的关注

2 个答案:

答案 0 :(得分:2)

您可以在drl文件中使用 drools.setFocus()方法在StatelessKieSession中设置Agendagroup。您必须明确做的一件事是在Fact对象中声明一个变量,并将agendaGroup名称分配给该变量。示例规则如下:

rule "global" salience 100 when $rec : FactObject() then drools.setFocus($rec.getAgendaValue()); end

为此规则赋予高显着性值,以便首先执行该规则。查看this博客。他们正在做你想做的事情。

答案 1 :(得分:0)

对于StatelessKieSession,您可以将AgendGroup和Activation Group设置为Commands的一部分

1946-01-12: 1
1946-01-12: 1
1946-01-12: 1
1946-01-13: 1
1946-01-13: 1
1946-01-13: 1
1946-01-14: 1
1946-01-14: 1
1946-01-14: 1
1946-01-15: 1