启动过程时如何为Activiti设置瞬态变量

时间:2018-12-14 09:15:42

标签: variables activiti bpmn

我正在使用Activiti版本6.0.0,并尝试在启动进程或完成任务时设置瞬态变量。 Documentation for transient variables声明:

  

在暴露常规变量的大多数地方都可以获取和/或设置瞬态变量:
  1.关于JavaDelegate实现中的DelegateExecution
  2.在ExecutionListener实现中的DelegateExecution上以及在TaskListener实现中的DelegateTask上   3.通过执行对象在脚本任务中
   4。通过运行时服务启动流程实例时
  5.完成任务时
  6.调用runtimeService.trigger方法

我很清楚情况1-3。对于情况5,有taskService.complete(taskId, variables, transientVariables);;对于情况6,有runtimeService.trigger(executionId, processVariables, transientVariables);  但是没有runtimeService.startProcess...方法接受瞬态变量(RuntimeService javadoc):

List of available startProcess... methods 另外,在启动过程之后,我没有找到设置瞬态变量的方法,并且ProcessInstance方法返回了startProcess...个对象。

启动过程时是否可以设置瞬态变量,还是必须使用变通方法(情况1或2)?

1 个答案:

答案 0 :(得分:2)

您可以使用a slightly different method for starting the process在6.x版本中启动时设置瞬态变量:

runtimeService.createProcessInstanceBuilder()
        .processDefinitionKey("transientVarsTest")
        .transientVariable("variable", "gotoA")
        .start()