Я читаю файл правил и добавляю их в свою базу знаний, а затем хочу запустить определенное правило в этой базе знаний. Возможна ли эта задача в текущей версии drools?
Запуск определенного правила по имени правила в слюнях без использования фильтров повестки дня
comment
Как бы вы хотели активировать правило? - У вас должны быть объекты (факты), соответствующие шаблону(ам) в условии правила, и если они у вас есть, вы можете вставить их в рабочую память, и тогда правило сработает. Без таких объектов запуск правила не имеет смысла.
- person laune   schedule 26.10.2015
comment
Представьте, что в моей базе знаний 10 правил. Внешний API отправит мне объект (например, человек) и имя правила (например, правило_3). Я должен вернуть результат после оценки полученного объекта человека только по правилу_3. Я не хочу навязывать человеку другие правила.
- person Hasitha   schedule 26.10.2015
Ответы (1)
Если у вас есть база правил, в которой правила должны быть активизированы динамически в соответствии с каким-либо критерием, у вас есть несколько вариантов.
- Фильтр повестки дня. Вы говорите, что не хотите этого, но почему?
- Поместите альтернативные правила в группы повестки дня. Выберите группу повестки "group_3" перед вставкой факта вызовом
kieSession.getAgenda().getAgendaGroup( "group_3" ).setFocus();
- Напишите свои правила, чтобы включить факт «выбора», например.
rule rule_3 when Select( rule == "rule_3" ) Person( ... ) then ... end
Факт Select может быть вставлен вместе с фактом данных, но должен быть отозван после срабатывания правила.
person
laune
schedule
26.10.2015
Спасибо @laune. Не могли бы вы объяснить, как моя задача может быть достигнута с помощью фильтров повестки дня?
- person Hasitha; 28.10.2015