启动进程时如何为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()