2012-03-18 4 views
0

BPMN2 프로세스 모델에서 비즈니스 규칙을 통합하는 데 문제점이 있습니다.비즈니스 규칙을 사용하는 프로세스 모델 연결

import com.sample.ProcessTest.User; 

rule "AgeCheck" 
ruleflow-group "AgeRules" 

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

내 문제는 내가 두 개의 매개 변수 나이, 이름이, 내가 규칙을 사용하고 있지 않다 만약 내가에 전달할 수 있다는 것입니다 : 그래서 내 프로세스는 DRL 파일이 하나의 규칙이 포함이 enter image description here

처럼 보인다 게이트 웨이, 스크립트 프로세스를 포함하지만 비즈니스 규칙 태스크를 사용할 때이 노드에서 중지됩니다. 나는 일식의 프로세스를 시작하고

,

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

I 추가 자원,

kbuilder.add(ResourceFactory.newClassPathResource("Process2.bpmn2"), ResourceType.BPMN2); 
    kbuilder.add(ResourceFactory.newClassPathResource("AgeRules.drl"), ResourceType.DRL); 
rouleflow 그룹이 AgeRules로 설정 RuleChecker 노드의 속성에서

나는 다음과 같은 결과가 내 프로젝트를 실행하려고 할 때 :

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] 

나는 프로인지 모르겠다. 프로세스가 규칙 검사기에서 멈추기 때문에 정확히 훼손됩니다. 사람이 나를 도울 수 경우 문제를

종류의 안부 휴노 - 아틸라 케레 케스

답변

0

감사 로그에서와 같이 엔진의 RuleChecker 노드에서 중지하는 것이 정상입니다 무엇인지 설명해주십시오. 규칙 흐름 그룹의 일부로 활성화 된 규칙이 실행될 때까지 기다립니다. 코드 조각에서 fireAllRules()를 호출하는 것처럼 보이고, 의제 리스너를 등록 했습니까? 규칙을 실행하는 것으로 보입니까? 또는 규칙의 활성화 또는 비활성화가 표시됩니까? fireAllRules를 호출하기 전에 Eclipse에서 디버그 뷰를 조사하여 발동 및 실행 규칙이 있는지 확인하는 것이 좋습니다.

+0

이 답변 주셔서 감사합니다, 귀하의 질문에 내 예를 들어이 코드 부분을 추가하여 빨리 해결책을 찾기 위해 저를 이끌 '새로운 스레드 (새의 Runnable() { 공공 무효 실행() { ksession.fireUntilHalt (); } }). start(); ' \t \t \t \t \t ksession.startProcess ("_ New.Process2", params); ' –

관련 문제