java代码制作activiti会签_activiti设计器会签人员配置
使用activiti設計器進行流程圖繪制,并且配置會簽和或簽人員,我也是在學習中,通過不斷查閱資料,總結了三種方式配置會簽人員
在配置人員之前,我們先說一下多實例類型 并行和串行
并行:并行代表同時進行,任務如果分配給兩個人,那么在這個節點的時候,兩個人同時都會收到任務,各自處理
串行:串行是指任務由一個人完成后,才會流轉到第二個人手上
第一種方式通過設置變量
通過在設計器設置會簽人員集合,在流程啟動之前,將變量值設置進去
頁面配置:
代碼設置:
List assigneeList = new ArrayList<>();
assigneeList.add("張三");
assigneeList.add("李四");
vars.put("assigneeList",assigneeList);
ProcessInstance processInstance = runtimeService.startProcessInstanceById(processDefinition.getId(), businessKey, vars);
然后流程在走到會簽這一步的時候,會自動將任務分配給張三和李四
第二種方式通過任務監聽器配置
代碼設置:
import org.activiti.engine.delegate.DelegateTask;
import org.activiti.engine.delegate.TaskListener;
import java.util.Arrays;
public class TaskListenter implements TaskListener {
@Override
public void notify(DelegateTask delegateTask) {
String[] empLoyees = {"張三","李四"};
// 會簽設置審核人/
delegateTask.addCandidateUsers(Arrays.asList(empLoyees));
}
}
然后流程在走到會簽這一步的時候,會自動將任務分配給張三和李四
第三種方式想在頁面將人員寫死
集合(多實例): ${testUser.resolveUsersForTask(execution,“張三,李四”)}
代碼:
@Component
public class TestUser {
/**
* 會簽時,動態獲取審批人
* @param execution
* @return
*/
public List resolveUsersForTask(DelegateExecution execution, String value) {
System.out.println(value);
String[] user = value.split(",");
String instanceId = execution.getProcessInstanceId();
System.out.println("實例id:"+instanceId);
List users = Arrays.asList(user);
return users;
}
}
以上三種方式 是我自己總結的設置會簽人員的方法
最后附上多實例完成條件:
nrOfInstances:實例總數
nrOfActiveInstances:當前活動的,比如還沒完成的,實例數量。對于順序執行的多實例,值一直為1。
nrOfCompletedInstances:已經完成實例的數目
舉例:
${nrOfCompletedInstances>0} 表示只要有人完成任務就通過該節點
${nrOfCompletedInstances/nrOfInstances==1} 全部完成才能通過該節點
本文地址:https://blog.csdn.net/u010796208/article/details/107690399
希望與廣大網友互動??
點此進行留言吧!
總結
以上是生活随笔為你收集整理的java代码制作activiti会签_activiti设计器会签人员配置的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 浅谈spring之jdk动态代理
- 下一篇: 我有一个计算机梦想作文500,我有一个梦