activiti全局流程变量与局部变量的区别

activiti全局流程变量:设置全局流程变量,流程变量名称相同时,后一次的值替换前一次的值,而且可以看到ACT_HI_VARINST和ACT_RU_VARIABLE两张表中的TASK_ID全都为空
局部变量:设置局部流程变量,针对当前任务设置流程变量,如果一个流程中存在2个任务,对每个任务都设置局部变量,变量的名称相同时,后一次的版本的值也不会替换前一次版本的值,它会使用不同的任务ID作为标识,存放2个任务的流程变量值,而且可以看到TASK_ID的字段会存放任务ID的值,局部变量不会存入ACT_RU_VARIABLE表,且ACT_HI_VARINST表不会存入数据。
设置方法:
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
Task task = processEngine.getTaskService().createTaskQuery().processInstanceId(“115001”).singleResult();
System.out.println(task.getName());
Map map = new HashMap<>();
map.put(“money”,“300”);
map.put(“name”,“lee”);
map.put(“reason”,“leave”);
map.put(“value”,“1”);
//设置局部变量
//processEngine.getTaskService().setVariablesLocal(task.getId(),map);
//设置全局变量
processEngine.getTaskService().setVariables(task.getId(),map);
//直接提交完成任务默认设置为全局变量
processEngine.getTaskService().complete(task.getId(),map);

你可能感兴趣的:(activiti)