1. 繪製流程圖
1.1 爲指派任務設定任務人
設定任務人爲張三和李四,同時設定“允許上一節點爲當前任務節點指定處理人”。保存流程併發布。
1.2 在central中查看已經發布的任務模型
2. 啓動任務測試
2.1 啓動任務
啓動任務,並且點擊完成第一個任務,出現了任務流轉的路徑,此時我們發現,我們指定的三個路徑“到競爭任務”、“到會籤任務”、“到指派任務”三個連線都顯示了出來。
我們選擇“到指派任務”並完成他。
2.2 通過接口獲取下一流程及潛在任務人
在第一任務環節獲取“到競爭任務”、“到會籤任務”、“到指派任務”下的三個流程節點
通過loadSequenceFlows接口,已經能夠獲得到所有的連線及其下面的節點。
通過getNextTaskAndAssignees接口獲得
可以看到,指派任務中的張三、李四也已經查詢了出來。
2.3 選擇指派任務
任務完成或,我們發現指派任務的任務類型爲“競爭”,這是爲什麼呢?其實我們在系統中找所有TaskType.Appoint的調用發現,UFLO中沒有哪個地方顯式的去定義一個任務爲指派任務的代碼。
發現其任務類型爲Participative(競爭任務)
2.4 領取任務[指派任務]
通過調用UFLO的http://localhost:8080/uflo/central/loadCliamUsers?taskId=25825接口發現,能夠獲取到指定的任務人。
2.5 任務領取成功
任務領取成功後發現,當前的任務類型還是競爭任務。
3. 通過接口試着指定任務人
3.1 查找服務saveTaskAppointor
在TaskService中我們發現了兩個用來指定任務人的服務
/**
* 在某個任務中指定下一個指定任務節點上的任務處理人
* @param taskId 具體任務對象ID
* @param assignee 要指定的任務處理人
* @param taskNodeName 指定任務處理人的任務節點名稱
*/
void saveTaskAppointor(long taskId,String assignee,String taskNodeName);
/**
* 在某個任務中指定下一個指定任務節點上的任務處理人,可以爲多個處理人
* @param taskId 具體任務對象ID
* @param assignees 要指定的任務處理人集合
* @param taskNodeName 指定任務處理人的任務節點名稱
*/
void saveTaskAppointor(long taskId,String[] assignees,String taskNodeName);
3.2 編寫接口
@PostMapping("saveTaskAppointor")
void saveTaskAppointor(long taskId,String assignee,String taskNodeName)
{
taskService.saveTaskAppointor(taskId,assignee,taskNodeName);
}
3.3 測試接口
接口執行完成後,沒有任何的返回。
3.4 當前任務的查看
我們發現在第一個任務節點上,看不到任何的差別。
完成這個“第一個任務”
最終的任務類型變成了普通
4. 總結
最終也沒有發現如何將任務設定爲指定任務,不過我們已經找到了如何在上一節點指定下一節點人員任務的方式了。