Activit多例項任務
多例項任務:順序和並行
順序:按照集合設定的順序執行
並行:按照集合設定的同時到達任務人
例項的數量就是任務執行人的數量,如果不是使用者任務那麼就要自己設定例項的數量
即:一個任務節點多人(順序或並行)執行
使用者多例項例子
順序:例項的數量不進行設定,而是根據任務執行人數量進行設定
這裡用監聽器進行設定
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執行完後才能往下的節點繼續走。