Есть ли способ вызвать запрос из правила в файле DRL? - PullRequest
0 голосов
/ 09 мая 2019

У меня есть требование связать правило окна с правилом окна. Мой вариант использования:

Если значение температуры> 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

Я получаю ошибки при вызове запроса. Я попытался вызвать запрос в части и присвоить его переменной, но это также выдало ошибку (Query's must use positional or bindings, not field constraints:1000L и Query binding is not supported by non-abductive queries : $variable).

Может кто-нибудь помочь мне решить эту ошибку или предложить какой-либо другой подход к проблеме?

...