У меня есть таблица решений Drools (см. ниже), в соответствии с которой правило 2 имеет условие, которое проверяет, находится ли показатель питательных веществ между определенным порогом, и выполняет действие на основе этого условия. Существует начальное правило (ПРАВИЛО 1), которое выполняет проверку и выполняет свое действие, которое обновляет общие оценки, которые я хочу, чтобы Правило 2 использовало при выполнении его условий.
Что я ожидаю/нужно:
Правило 1 для запуска, если условие выполнено, то обновите общий балл $model (путем выполнения его действия), а затем запустите правило 2 и для его условий используйте обновленное значение балла, которое было обновлено при выполнении действия правила 1.
Что происходит на самом деле
Правило 1 выполняет свое условие, Правило 2 выполняет свое условие, действие Правила 1 выполняется, действие Правила 2 выполняется. Правило 2 запускается до того, как запустится действие Правила 1, и поэтому использует устаревшую оценку.
Я доказал (я думаю), изменив значение приоритета/значимости, что я могу изменить порядок, в котором правила выполняют свои условия, но кажется, что все условия правил выполняются до действий. Я ожидал, что действие Правила 1 будет выполнено до следующего правила.
Я принципиально неправильно понял концепцию? Явная ошибка? Или, если у кого-то есть предложенный обходной путь, это было бы здорово.
Чтобы уточнить, это сеанс ки без состояния.
Заранее спасибо, это сводит меня с ума!