多实例任务:顺序和并行
顺序:按照集合设置的顺序执行
并行:按照集合设置的同时到达任务人
实例的数量就是任务执行人的数量,如果不是用户任务那么就要自己设置实例的数量
即:一个任务节点多人(顺序或并行)执行
用户多实例例子
顺序:实例的数量不进行设置,而是根据任务执行人数量进行设置
这里用监听器进行设置
Sequential: true—顺序/false—并行
Collection:集合-------一般用list来设置
Element variable : Element 用于遍历集合 ,任务执行人assignee 即设置取Elementvariable 的值${ Element }
流程图:
上级领导审批是并行:在流程启动时设置审批人managerList
人事部审批是顺序:在监听器中设置审批人hrList
关于监听器:http://blog.csdn.net/qq_30739519/article/details/51258447
新建listener:java class
在流程启动时调用:
package com.activiti.listener.execution;
importjava.util.ArrayList;
importjava.util.List;
importorg.activiti.engine.delegate.DelegateExecution;
importorg.activiti.engine.delegate.ExecutionListener;
public classLeaveListener implements ExecutionListener {
//监听器设置
@Override
public void notify(DelegateExecutionexecution) throws Exception {
//上级领导审批执行人设置ABC
List managerList = newArrayList();
managerList.add("A");
managerList.add("B");
managerList.add("C");
execution.setVariable("managerList",managerList);
//hr审批执行人设置 QWE
List hrList = newArrayList();
hrList.add("Q");
hrList.add("W");
hrList.add("E");
execution.setVariable("hrList",hrList);
}
}
流程启动后:
任务节点上级领导审批节点中(并行ABC)
正在运行的任务:
ABC同时接收到任务,ABC都办理完成之后才能进行下一个节点的执行
ABC都办理后,到人事部审批 (顺序QWE)Q办理后到W,W办理后到E,E执行完后才能往下的节点继续走。