1、設(shè)置出口變量
當(dāng)一個(gè)任務(wù)有一個(gè)或多個(gè)出口時(shí),可以在出口連線出設(shè)置判斷條件如圖:

2、根據(jù)任務(wù)Id獲取出口集合
public List<String> getOutGoingTransNames(String taskId) { List<String> transNames = new ArrayList<>(); // 1.獲取流程定義 Task task = this.taskService.createTaskQuery().taskId(taskId).singleResult(); PRocessDefinitionEntity pd = (ProcessDefinitionEntity) repositoryService.getProcessDefinition(task.getProcessDefinitionId()); // 2.獲取流程實(shí)例 ProcessInstance pi =runtimeService.createProcessInstanceQuery().processInstanceId(task.getProcessInstanceId()).singleResult(); // 3.通過流程實(shí)例查找當(dāng)前活動(dòng)的ID String activitiId = pi.getActivityId(); // 4.通過活動(dòng)的ID在流程定義中找到對(duì)應(yīng)的活動(dòng)對(duì)象 ActivityImpl activity = pd.findActivity(activitiId); // 5.通過活動(dòng)對(duì)象找當(dāng)前活動(dòng)的所有出口 List<PvmTransition> transitions = activity.getOutgoingTransitions(); // 6.提取所有出口的名稱,封裝成集合 for (PvmTransition trans : transitions) { String transName = (String) trans.getProperty("name"); if(StringUtils.isNotBlank(transName)){ transNames.add(transName); } } if(transNames.size()==0){ transNames.add("提交");//默認(rèn) } return transNames; }3、應(yīng)用
在頁(yè)面展示的時(shí)候遍歷節(jié)點(diǎn)出口,在提交的時(shí)候傳入相應(yīng)的提交出口名稱
提交代碼:
Map<String, Object> vars = new HashMap<>(); vars.put("outcome", outcome);//outcome為提交按鈕的名稱 // 完成任務(wù) taskService.complete(taskId,vars);
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注