activi设置流程变量
更新时间:2023-06-17背景介绍
在Activiti中,流程变量是一种在流程实例运行时存储和传递数据的机制。通过设置流程变量,流程实例可以获取并处理相关的数据,通过在不同阶段设置不同的流程变量,流程的行为可以变得更加灵活。
设置单个流程变量
在Activiti中,可以通过以下方式设置单个流程变量:
RuntimeService runtimeService = processEngine.getRuntimeService(); runtimeService.setVariable(executionId, variableName, variableValue);
这里,executionId
是流程实例的ID,variableName
是变量的名称,variableValue
是变量的值。如果需要设置的流程变量不存在,则会自动创建它。
设置多个流程变量
如果需要设置多个流程变量,可以使用以下代码:
Map<String, Object> variables = new HashMap<>(); variables.put("variable1", value1); variables.put("variable2", value2); runtimeService.setVariables(executionId, variables);
这里,variables
是一个Map
对象,其中包含了多个要设置的流程变量及其对应的值。通过setVariables
方法一次性设置这些变量,可以提高代码的执行效率。
设置本地流程变量
在Activiti中,不仅可以设置全局的流程变量,还可以设置本地流程变量。与全局变量不同,本地变量只在当前执行流程节点中有效,离开该节点后就无法被访问使用了。
// 设置单个本地变量 runtimeService.setVariableLocal(executionId, variableName, variableValue); // 设置多个本地变量 Map<String, Object> variables = new HashMap<>(); variables.put("variable1", value1); variables.put("variable2", value2); runtimeService.setVariablesLocal(executionId, variables);
这里,设置本地流程变量的方式与设置全局变量类似,只需要在方法名中添加Local
即可。