80.2. 规则的电缆组
电缆组是一组规则,由相同的 sales -group
rule 属性绑定在一起。在决策引擎动机上对分区规则进行分组。在任何时间点上,只有一个组具有 重点,为在其他销售组的规则之前执行的一组规则优先级。您确定对 sales 组的 setFocus ()
调用。您还可以使用 auto-focus
属性定义规则,以便在下次激活规则时,重点会自动提供给分配该规则的整个电缆组。
每次在 Java 应用程序中发出 setFocus ()
调用时,决策引擎会将指定的 sales 组添加到规则堆栈的顶部。默认电缆组 "MAIN"
包含所有不属于指定 leader 组的规则,除非另一个组具有重点,否则首先在堆栈中执行。
例如,以下示例 DRL 规则属于指定的电缆组,按所示的顺序在决策引擎堆栈中列出:
指导应用程序的 DRL 规则示例
在本例中,必须始终首先执行 "报告"
模拟组中的规则,并且 "计算"模拟
组中的规则必须始终执行第二个。然后,可以执行其他销售组中的所有规则。因此,"报告
"和"计算"
组必须按照该顺序执行,然后才能执行其他规则:
为销售组执行顺序设置重点
Agenda agenda = ksession.getAgenda(); agenda.getAgendaGroup( "report" ).setFocus(); agenda.getAgendaGroup( "calculation" ).setFocus(); ksession.fireAllRules();
Agenda agenda = ksession.getAgenda();
agenda.getAgendaGroup( "report" ).setFocus();
agenda.getAgendaGroup( "calculation" ).setFocus();
ksession.fireAllRules();
您还可以使用 clear ()
方法取消属于给定电缆组的规则生成的所有激活,然后才能执行:
取消所有其他规则激活
ksession.getAgenda().getAgendaGroup( "Group A" ).clear();
ksession.getAgenda().getAgendaGroup( "Group A" ).clear();