2017-02-16 59 views
0

一个Camunda用户任务的输入/输出参数I具有简单的工作流:设置/获取使用Java API

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

的〔exclusive_gateway]具有两个发布的路由:

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] 

在Camunda Modeler中,我已经向[user_task]添加了一个输出参数(命名为out)。

问: 如何设置通过Java API 泰德输出参数之前通过完成任务:

taskService.complete(taskId); 

在[exclusive_gateway]箭,我给自己定的:

Condition type = expression 
Expression = ${out != null} 

但还有更多

如果我删除了第在完成任务之前的[user_task],并设置一个runtimeService可变电子输出参数:

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

的〔exclusive_gateway]并处理所述参数,和路线如预期的流动。 而不删除的输出参数的[user_task]好像: 1.它永远不会设置(从而== NULL) 2.此空值覆盖由

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

所以可以予设定的设定值通过Java API的任务输出参数或我只能使用流程变量?

回答

1

我猜你是通过设置在寻找

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

任务和网关(价值的转发)之间的通信发生的过程变量上完成“出”。

欲了解更多信息,请检查javadoc

+0

非常感谢;) – Kumite