JBoss Drools вставляет факты из ДХО

Мне нужна моя WorkingMemory, чтобы быть в курсе фактов, которые создаются в DRL следующим образом:

rule "Your First Rule"
when
    $testRule : TestRule(count >= 100)
then 
    System.out.println("100 PACKETS");
end

Есть ли способ получить WorkingMemory, чтобы узнать о факте TestRule и затем иметь возможность быть обновленным? Моя цель - получить правило, чтобы узнать, когда было получено 100 пакетов.

1 ответ

Решение

Обычно я создаю что-то как часть правила и использую это как флаг. Если вам не нужно ничего создавать, то вы можете создать флаг, например

rule "Your First Rule"
when
    $testRule : TestRule(count >= 100)
    not         Flag(id="packets")
then 
    System.out.println("100 PACKETS");
    insert( new Flag("packets") )
    update( $testRule )
end

Я не думаю, что этот код является правильным, но я думаю, что вы можете понять идею... И вам нужно будет создать класс с именем Flag. Обновление необходимо для того, чтобы сообщить слюнам, что необходимо обновить дерево повторов.

Другие вопросы по тегам