Activiti 開發案例之流程任務指派、轉辦以及委派

  • 2019 年 12 月 24 日
  • 筆記

指派

前提是流程中中配置了assignee變量:

Map<String,Object> variables=new HashMap<>();  variables.put("assignee", userId);  Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();  taskService.claim(taskId, userId);  taskService.complete(taskId, variables);

不需要配置變量,直接使用API

Map<String,Object> variables=new HashMap<String,Object>();  variables.put("approve", "false");  Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();  //一定要認領任務之後,重新獲取當前任務,然後分配角色。  taskService.claim(task.getId(), userId);  taskService.complete(task.getId(), variables);  task = taskService.createTaskQuery().processInstanceId(processInstanceId).active().singleResult();  //指派任務  taskService.addCandidateUser(task.getId(),userId);  //如果是指派角色  taskService.addCandidateGroup(task.getId(),roleId);

轉辦

轉辦:直接將辦理人換成別人,這時任務的擁有着不再是轉辦人。

如果是第一種方式的指派:

//直接轉派就可以覆蓋掉之前的  taskService.setAssignee(taskId,userId);

如果是第二種方式的指派:

/**  * 刪除指派人重新指派  */  taskService.deleteCandidateUser(taskId,"原用戶ID");  taskService.addCandidateUser(taskId,"新用戶ID");

如果要查詢轉給他人處理的任務,可以同時將OWNER進行設置:

taskService.setOwner(taskId, userId);

委派

委派:是將任務節點分給其他人處理,等其他人處理好之後,委派任務會自動回到委派人的任務中。

//將任務進行委派  taskService.delegateTask(taskId, userId);  //被委派人辦理任務後  taskService.resolveTask(taskId,variables);