我有一个场景,我希望将StatelessKieSession
与议程组一起使用。 StatelessKieSession
没有任何方法可以将焦点设置为特定AgendaGroup
,例如正常KieSession
,如下所示
KieContainer kContainer = ks.newKieContainer(kr.getDefaultReleaseId());
KieSession kSession = kContainer.newKieSession();
kSession.getAgenda().getAgendaGroup("us").setFocus();
如何使用StatelessKieSession
?
答案 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