2012-03-18 2 views
0

У меня проблема с интеграцией бизнес-правил в моей модели процесса BPMN2. Так что мой процесс выглядит следующим образом enter image description hereПодключение модели процесса с бизнес-правилами

Файл DRL содержит только одно правило:

import com.sample.ProcessTest.User; 

rule "AgeCheck" 
ruleflow-group "AgeRules" 

when 
    u:User (u.getAge()<17) 
then 
    u.setName("Denied"); 
end 

Моя проблема заключается в том, что у меня есть два параметра Возраст, имя, и если я не использую правила, я могу передать их на шлюзы, процессы сценариев, но когда я использую задачу бизнес-правила, она останавливается на этом узле.

Я начало процесса от затмения,

ksession.startProcess("_New.Process2", params); 
    System.out.println("Process started ..."); 
    ksession.fireAllRules(); 

Я добавил ресурсы,

kbuilder.add(ResourceFactory.newClassPathResource("Process2.bpmn2"), ResourceType.BPMN2); 
    kbuilder.add(ResourceFactory.newClassPathResource("AgeRules.drl"), ResourceType.DRL); 

В свойствах RuleChecker узла rouleflow группа, устанавливаются в AgeRules и у меня есть следующий результат когда я пытаюсь запустить свой проект:

BEFORE PROCESS NODE TRIGGERED node:RuleChecker[id=5]  process:Process2[id=_New.Process2] 
    BEFORE RULEFLOW GROUP ACTIVATED group:AgeRules[size=0] 
    AFTER RULEFLOW GROUP ACTIVATED group:AgeRules[size=0] 
    AFTER PROCESS NODE TRIGGERED node:RuleChecker[id=5] process:Process2[id=_New.Process2] 
    AFTER PROCESS NODE TRIGGERED node:InputUser [id=2] process:Process2[id=_New.Process2] 

Я не знаю, в чем проблема em, потому что процесс останавливается в рулевом шкафу. Если кто-нибудь может мне помочь с этим, пожалуйста, объясните мне, что это проблема

С наилучшими пожеланиями, Hunor-Attila Kerekes

ответ

0

Это нормально, что двигатель останавливается на узле RuleChecker, как показано в журнале аудита. Он просто подождет, пока не будут активированы правила, которые были активированы как часть группы правил. В вашем фрагменте кода вы, кажется, звоните в fireAllRules(), вы также зарегистрировали слушателя повестки дня и видите ли какие-либо правила стрельбы? Или вы видите активацию или деактивацию правил? Возможно, стоит взглянуть на отладочные представления в Eclipse непосредственно перед вызовом fireAllRules, чтобы узнать, есть ли какие-либо правила, активированные и запущенные.

+0

Большое спасибо за ваш ответ. Ваши вопросы заставили меня быстрее найти решение, добавив эту часть кода в мой пример: «новая тема (новый Runnable() { public void run() { ksession.fireUntilHalt () } }). Start(); ' \t \t \t \t \t ksession.startProcess ("_ New.Process2", PARAMS);» –