1. 程式人生 > >activiti會籤以及動態設定辦理人員

activiti會籤以及動態設定辦理人員

會籤的基礎設定就不說了

寫幾個需要在流程圖裡面設定的變數   

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",其他的節點可以設定任務派遣(受讓人)為${..}然後也可以在這裡流程啟動之前設定受理人,

當然,如果沒有設定受讓人,那麼在流程轉交到那一步時就會報異常,流程無法走下去

我們這個專案的需求就是這樣,如果節點沒有設定辦理人員就需要跳過這個節點到下一個節點,這又是另外一個問題了