Как динамически выбирать правила drools для выполнения на уровне задач бизнес-правил?
У меня есть несколько правил слюни, которые я хочу использовать в разных потоках правил. Поскольку правило Drools одновременно поддерживает только одно имя группы правил и задача бизнес-правила потока правил также может быть сопоставлена с одной группой правил, я не могу использовать одно правило в разных потоках правил. Есть ли другой способ, которым я могу использовать для фильтрации правил? как использовать теги или и метаданные?
1 ответ
Вы можете создать свои собственные группы правил. Вы создаете класс OwnRuleGroup с группой String в нем в качестве поля. Затем, когда вы запускаете правила, вы создаете экземпляр своего собственного правила grup:
OwnRuleGroup myGroup = new OwnRuleGroup();
myGroup.group = "foo";
и вставьте это в сессию с другими фактами. В каждом правиле вы можете указать, какую из групп вы хотите использовать.
rule "This will fire for groups foo,bar"
when
OwnRuleGroup(group in ["foo", "bar"])