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