Только что сделал быстрый тест, и он отлично сработал (Drools 7.14.Final) со следующей настройкой:
1) Правило без группы повестки дня
2) Правило с повесткой дня-group "Group1"
3) Еще одно правило с повесткой дня группы "Group2"
Я назвал правила следующим кодом:
kSessionRules.getAgenda().getAgendaGroup("Group 1").setFocus();
kSessionRules.fireAllRules();
kSessionRules.update(tcHandle, tc); //tc is the object inserted in working memory, the FactHandle is the return value from the *insert* call
kSessionRules.getAgenda().getAgendaGroup("Group 2").setFocus();
kSessionRules.fireAllRules();
Конечный результат названных правилбыло:
Правило 2)
Правило 1) => конец первого вызова группы повестки дня
Правило 3)
Правило 1) снова
В этом примеремое правило 1) срабатывало оба раза, так что мне кажется, что вы ищете.Обратите внимание, что мне нужно использовать update в моем случае, потому что мое условие правила относится к свойству, которое не изменено другими правилами, поэтому без этого update правило не будетстрелять во второй раз.Также небольшая оговорка, похоже, что «универсальное» правило всегда будет срабатывать после текущей повестки дня группы.Это проблематично в вашем случае?