设置流程变量时受影响的表:
1.act_ru_variable (运行时变量表)
2.act_ge_bytearray (流程定义的资源文件)
1.启动流程定义时把我们的对象作为流程变量设置进去
//1.得到ProcessEngine
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
//2.得到RuntimeService
RuntimeService runtimeService = processEngine.getRuntimeService();
//3.流程定义的key问题 myProcess_1
String key = "myProcess_1";
Map<String ,Object> map = new HashMap<>();
//此对象作为流程变量(注意:POJO类型,一定要实现Serializable接口,否则在存储这个pojo时就会报异常)
Holiday holiday = new Holiday();
holiday.setNum(5F);
map.put("holiday",holiday);
//4.启动流程实例,并且设置流程变量的值
ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(key, map);
//5.输出实例信息
System.out.println(processInstance.getName());
System.out.println(processInstance.getProcessDefinitionId());
2.我们流程完成部门经理审批完需要判断流程变量中的num值,num>3 总经理审核
![](https://img.haomeiwen.com/i19970059/cf522461bb8addf0.png)
流程变量的使用我们写在流程定义中
image.png
image.png
3.其他几种流程变量的设置方式
1.taskService.complete(task.getId(),map);//完成任务时,设置流程变量的值
2.runtimeService.setVariable("2501","holiday",holiday);
3.runtimeService.setVariable("2501",map); 一次设置多个流程变量
网友评论