У меня есть требование связать правило окна с правилом окна. Мой вариант использования:
Если появление температуры> 50 в 5-минутном окне больше 10, тогда найдите максимальную (среднюю) температуру в этой рамке окна или любое другое цепное правило для этих данных окна.
Я попробовал следующий подход:
query getFactFromMemory(long time)
$fact : Fact(timepoing < (drools.getWorkingMemory().getSessionClock().getCurrentTime() + time))
end
rule "window rule"
when
//condition
then
//action
end
rule "chain rule"
when
//condition
then
getFactFromMemory(1000L)
//loop over facts and then perform some action
end
Я получаю ошибки при вызове запроса. Я попытался вызвать запрос в части when и назначить его переменной, но это также дало ошибку (Query's must use positional or bindings, not field constraints:1000L
и Query binding is not supported by non-abductive queries : $variable
).
Может ли кто-нибудь помочь мне решить эту ошибку или предложить какой-либо другой подход к проблеме?