使用 Java API 设置/获取 Camunda 用户任务的输入/输出参数
set / get input / output parameters of a Camunda user task using 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 设置任务的输出参数还是只能使用过程变量?
我猜你正在寻找
taskService.complete(<taskId>, Variables.putValue("out", <name>);
任务和网关之间的通信(值的转发)通过设置 process-variable "out" 完成。
有关详细信息,请查看 javadoc。
我的工作流程很简单:
[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 设置任务的输出参数还是只能使用过程变量?
我猜你正在寻找
taskService.complete(<taskId>, Variables.putValue("out", <name>);
任务和网关之间的通信(值的转发)通过设置 process-variable "out" 完成。
有关详细信息,请查看 javadoc。