У меня есть два правила Drools в одном и том же файле drl, например:
rule "If critical"
when
incident:Incident(state=CRITICAL)
then
incident.getIncidentValve().activateAlarm();
end;
rule "If alarm"
when
valve:Valve(hasAlarm==true)
then
SMS.send(valve.getId());
end;
Моя идея состоит в том, чтобы обработать с первым правилом все инциденты, которые находятся в критическом состоянии.И затем со вторым правилом, если какой-либо клапан имеет сигнал тревоги, который был установлен по правилу «Если критично», отправьте SMS.
Проблема заключается в том, что при первом выполнении правил SMSне отправлено.Кажется, это так, потому что «когда» обоих правил проверяется одновременно.
Мой вопрос заключается в том, как я могу сообщить Drools, что я хочу сначала выполнить «Если критично», а затем, после того как были вызваны методы «activAlarm», выполнить правило «Если тревога», чтобы отправить SMS.
Я попытался со всей очевидностью, но это не то, что я искал, потому что это только порядок выполнения, после проверки «когда», что, как я сказал, выполняется для обоих правил вв то же время.
Также пробовал с повесткой группы и setFocus, но это никуда меня не привело.
Есть идеи?Это возможно с Drools?