Связь модели процесса с бизнес-правилами - PullRequest
0 голосов
/ 18 марта 2012

У меня проблема с интеграцией бизнес-правил в мою модель процессов 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

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

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

    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]

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

С уважением, Хунор-Аттила Керекеш

1 Ответ

0 голосов
/ 19 марта 2012

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

...