Activiti任務認領TaskService taskService;
taskService.setAssignee(String taskId, String userId);
taskService.claim(String taskId, String userId);
taskService.setOwner(String taskId, String userId);
關於上面三個方法的區別:
setAssignee和claim兩個的區別是在認領任務時,claim會檢查該任務是否已經被認領,如果被認領則會拋出ActivitiTaskAlreadyClaimedException 。而setAssignee不會進行這樣的檢查,其他方面兩個方法效果一致。
setOwner和setAssignee的區別在於:
setOwner實在代理任務時使用,代表着任務的歸屬者,而這時,setAssignee代表的時代理辦理者,舉個例子來說,公司總經理現在有個任務taskA,去核實一下本年度的財務報表,他現在又很忙沒時間,於是將該任務委託給其助理進行辦理,此時,就應該這麼做:
taskService.setOwner(taskA.getId(), 總經理.getId());
taskService.setAssignee/claim(taskA.getId(), 助理.getId());