我正在使用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):
另外,在启动过程之后,我没有找到设置瞬态变量的方法,并且ProcessInstance
方法返回了startProcess...
个对象。
启动过程时是否可以设置瞬态变量,还是必须使用变通方法(情况1或2)?
答案 0 :(得分:2)
您可以使用a slightly different method for starting the process在6.x版本中启动时设置瞬态变量:
runtimeService.createProcessInstanceBuilder()
.processDefinitionKey("transientVarsTest")
.transientVariable("variable", "gotoA")
.start()