Настройка глобалов в Drools - PullRequest
2 голосов
/ 30 ноября 2009

Как установить глобал в Drools 4 из правила? Я хочу установить логическое значение, если правило срабатывает, чтобы оно могло прочитать его из другого правила с более низким значением.

Ответы [ 3 ]

1 голос
/ 30 ноября 2009

Предполагая, что вы используете Drools 5.x, вы можете сделать это в соответствии со своим правилом:

kcontext.getKnowledgeRuntime (). SetGlobal (имя, значение);

0 голосов
/ 14 января 2011

Я бы не использовал здесь глобал. Вы выводите новый факт из других фактов, вы можете просто «вставить» новый факт и включить другое правило.

rule "some rule"
when
    //…
then
    insert(new MyNewFact())
end

Нет никакой гарантии, что Drools пересмотрит ваши правила в ответ на добавление (нового) глобала, и ваше другое правило может не сработать Однако он будет переоценен в ответ на вставленные (или отозванные или измененные факты).

0 голосов
/ 04 декабря 2009

Вы можете сделать что-то вроде:

drools.getWorkingMemory (). SetGlobal ... (аналогично тому, что сказал Крис).

...