activiti會籤以及動態設定辦理人員
阿新 • • 發佈:2019-01-08
會籤的基礎設定就不說了
寫幾個需要在流程圖裡面設定的變數
1.多例項型別 :三條豎線表示例項會並行執行。 三條橫線表示順序執行。這個根據需要選擇就行了
2.集合(多例項):給一個EL表示式佔個坑,如${huiqian}
3.任務派遣:EL表示式${huiqianUser}
4.元素變數(多例項):${huiqianUser}
3,4不怎麼確定要不要,因為貌似在設定的時候沒有設定,知道的可以說下哈哈多謝
最後生成的XML就像下面這樣
<userTask id="hq" name="會籤" activiti:assignee="${huiqianUser}"> <multiInstanceLoopCharacteristics isSequential="false" activiti:collection="${huiqian}" activiti:elementVariable="huiqianUser"/> </userTask>
後臺程式碼
Map<String,Object> variables = new HashMap<String,Object>(); for(Map<String,Object> map:list){ String userType = (String) map.get("userType"); String authUserId = (String) map.get("authUserId"); if(userType.equals("huiqian")){ String[] users = authUserId.split(","); List<String> userList = Arrays.asList(users); variables.put("huiqian", userList); }else{ variables.put(userType, authUserId); } } ProcessInstance process = ProcessEngines.getDefaultProcessEngine().getRuntimeService().startProcessInstanceByKey(processDefinitionKey, id, variables);
userType就是在流程圖中設定的EL表示式對應的字串,如上"huiqian",其他的節點可以設定任務派遣(受讓人)為${..}然後也可以在這裡流程啟動之前設定受理人,
當然,如果沒有設定受讓人,那麼在流程轉交到那一步時就會報異常,流程無法走下去
我們這個專案的需求就是這樣,如果節點沒有設定辦理人員就需要跳過這個節點到下一個節點,這又是另外一個問題了