前提
大家可能会问,既然封装好了,为什么需要设置全局变量,其实对于简单的审批流程,并不需要设置全局变量,但是当存在流程判断的业务流程,这个时候就需要出一个全局变量,把控全局的流程运行情况。
代码
这里我根据燕青老师讲的,自己总结了一下,大概有四种方式。
第一种(在流程启动的时候设置全局变量)
//在流程启动时设置全局变量
@Test
public void startProcessInstance() {
//得到runtimeService
RuntimeService runtimeService = processEngine.getRuntimeService();
//根据流程定义的key(标识)来启动一个实例,activiti找该key下版本最高的流程定义
//一般情况下为了方便开发使用该方法启动一个流程实例
String processDefinitionKey = "purchasingflow";
//在流程启动时设置全局变量,第二个参数variables存储流程变量
Map<String , Object> variables = new HashMap<String,Object>();
//流程变更名称是assignee,流程变量值是“张三”
variables.put("assignee", "张三");
ProcessInstance processInstance = runtimeService
.startProcessInstanceByKey(processDefinitionKey, variables);
//根据流程定义的id来启动一个实例