在不使用议程过滤器的情况下在 drools 中按规则名称触发特定规则
Firing particular rule by rule name in drools without using Agenda Filters
我阅读了规则文件并将它们添加到我的知识库中,然后我想触发该知识库中的特定规则。在当前的 drools 版本中可以执行此任务吗?
如果您有一个规则库,其中的规则应根据某些标准动态激活,您有多种选择。
- 议程过滤器。你说你不想要这个,但为什么?
- 将备选规则放入议程组。 Select 议程组 "group_3" 在通过调用
插入事实之前
kieSession.getAgenda().getAgendaGroup( "group_3" ).setFocus();
- 编写规则以包含 "selection" 事实,例如
rule rule_3
when
Select( rule == "rule_3" )
Person( ... )
then ... end
Select 事实可以与数据事实一起插入,但必须在触发规则后收回。
我阅读了规则文件并将它们添加到我的知识库中,然后我想触发该知识库中的特定规则。在当前的 drools 版本中可以执行此任务吗?
如果您有一个规则库,其中的规则应根据某些标准动态激活,您有多种选择。
- 议程过滤器。你说你不想要这个,但为什么?
- 将备选规则放入议程组。 Select 议程组 "group_3" 在通过调用 插入事实之前
kieSession.getAgenda().getAgendaGroup( "group_3" ).setFocus();
- 编写规则以包含 "selection" 事实,例如
rule rule_3 when Select( rule == "rule_3" ) Person( ... ) then ... end
Select 事实可以与数据事实一起插入,但必须在触发规则后收回。