启动进程时如何为Activiti设置瞬态变量
How to set transient variable for Activiti when starting process
我正在使用 Activiti 版本 6.0.0 并尝试在启动进程或完成任务时设置瞬态变量。 Documentation for transient variables 状态:
Transient variables can be got and/or set in most places where regular variables are exposed:
1. On DelegateExecution in JavaDelegate implementations
2. On DelegateExecution in ExecutionListener implementations and on DelegateTask on TaskListener implementations
3. In script task via the execution object
4. When starting a process instance via the runtime service
5. When completing a task
6. When calling the runtimeService.trigger method
案例 1 - 3 我很清楚。案例 5 有 taskService.complete(taskId, variables, transientVariables);
案例 6 有 runtimeService.trigger(executionId, processVariables, transientVariables);
但是没有 runtimeService.startProcess...
方法接受瞬态变量 (RuntimeService javadoc):
我也没有找到在我启动进程后设置瞬态变量的方法,我有 startProcess...
方法返回的 ProcessInstance
对象。
有没有办法在启动进程时设置瞬态变量,或者我是否必须使用解决方法(情况 1 或 2)?
您可以使用 a slightly different method for starting the process:
在 6.x 中设置启动时的瞬态变量
runtimeService.createProcessInstanceBuilder()
.processDefinitionKey("transientVarsTest")
.transientVariable("variable", "gotoA")
.start()
我正在使用 Activiti 版本 6.0.0 并尝试在启动进程或完成任务时设置瞬态变量。 Documentation for transient variables 状态:
Transient variables can be got and/or set in most places where regular variables are exposed:
1. On DelegateExecution in JavaDelegate implementations
2. On DelegateExecution in ExecutionListener implementations and on DelegateTask on TaskListener implementations
3. In script task via the execution object
4. When starting a process instance via the runtime service
5. When completing a task
6. When calling the runtimeService.trigger method
案例 1 - 3 我很清楚。案例 5 有 taskService.complete(taskId, variables, transientVariables);
案例 6 有 runtimeService.trigger(executionId, processVariables, transientVariables);
但是没有 runtimeService.startProcess...
方法接受瞬态变量 (RuntimeService javadoc):
startProcess...
方法返回的 ProcessInstance
对象。
有没有办法在启动进程时设置瞬态变量,或者我是否必须使用解决方法(情况 1 或 2)?
您可以使用 a slightly different method for starting the process:
在 6.x 中设置启动时的瞬态变量runtimeService.createProcessInstanceBuilder()
.processDefinitionKey("transientVarsTest")
.transientVariable("variable", "gotoA")
.start()