Я использую Drools Rules Server в качестве службы. Мы используем таблицу решений
Pre Rules Movie Object:
actor: "unknown"
movie: "Ghostbusters"
rating: 9
У меня есть 2 простых правила в таблице решений Drools. Первое правило проверяет значение (movie=="Ghostbusters"
), а затем устанавливает вызовы, которые возражают setActor("Bill Murray")
.
2-е правило проверяет, что такое Актер. У меня есть 2 строки в этом втором правиле. if Actor == "Bill Murray"
это вызывает действие setRating(10)
. А если actor == "unknown"
setRating(8)
Первое правило срабатывает, как и ожидалось, и я могу напечатать getActor
, чтобы показать, что это «Билл Мюррей», но во втором правиле всегда срабатывает действие actor == "unknown"
. Даже если в этом ряду я напечатаю getActor
, он печатает «Билл Мюррей», но использует правило «неизвестно».
Когда объект возвращается из правил, у него есть Actor = Bill Murray
, и все значения, установленные в правиле, являются «правильными», но правила, кажется, всегда используют исходный объект, который я создал вне правила, при оценке правил.
Есть ли что-то, что я должен добавить в таблицу решений или вызов, чтобы вызвать сервер правил drools для "обновления" объекта между таблицами правил?