2017-02-16 8 views
0

를 사용하여 Camunda 사용자 작업의 입력/출력 매개 변수를 얻을 간단한 워크 플로우 :세트/내가 가지고있는 자바 API

[start_workflow] -> [user_task] -> 
-> [exclusive_gateway] -> (two routes see below) -> [end_workflow] 

에서 [exclusive_gateway]이 개 나가는 경로가 있습니다 Camunda 모델러에서

1.) ${if user_task output paramterer == null} -> [NULL_service_task] -> [end_workflow] 

2.) ${if user_task output paramterer != null} -> [NOT_null_service_task] -> [end_workflow] 

을, [user_task]에 출력 매개 변수 (out)를 추가했습니다.

Q : 내가 통해 작업을 완료 전에 자바 API 통해 텟 출력 매개 변수를 설정하는 방법 :

Condition type = expression 
Expression = ${out != null} 
다음 [exclusive_gateway] 화살표에

taskService.complete(taskId); 

, 나는이 설정 한

그러나 더있다 :

나는 일을 삭제하는 경우 작업을 완료하기 전에 [user_task]를 설정 runtimeService 변수 즉 출력 파라미터 :

runtimeService.setVariable(processInstanceId, "out", name); 

에서 [exclusive_gateway 상기 파라미터, 및 예상 경로 흐름을 처리 않는다. 의 출력 매개 변수를 삭제하지 않고 에서 [user_task]는 것 같은 : 1.이 설정되지 않습니다 (그래서 == NULL을) 2.이 null 값이

runtimeService.setVariable(processInstanceId, "out", name); 

그래서 설정할 수 있습니다로 설정 한 값을 덮어 씁니다 Java API를 통한 작업 출력 매개 변수 또는 프로세스 변수 만 사용할 수 있습니까?

답변

1

은 당신이 설정을 통해

taskService.complete(<taskId>, Variables.putValue("out", <name>); 

작업 및 게이트웨이 (값의 전달) 사이의 통신 일을 찾고있는 것 같아요 과정 변수 전체의 "OUT".

자세한 내용은 javadoc을 확인하십시오.

+0

많이 고마워.;) – Kumite