2016-11-11 85 views
1

如何将任务分配给activiti中的用户组。对于单个用户,可以使用下面的代码完成。如何将任务分配给组?

taskService.setAssignee(taskId, userId); 

但是我们如何才能将一个任务分配给一个组,可以由属于该组的任何用户选择。

回答

1

使用TaskService

 /** 
    * Convenience shorthand for {@link #addGroupIdentityLink(String, String, String)}; with type {@link IdentityLinkType#CANDIDATE} 
    * 
    * @param taskId 
    *   id of the task, cannot be null. 
    * @param groupId 
    *   id of the group to use as candidate, cannot be null. 
    * @throws ActivitiObjectNotFoundException 
    *   when the task or group doesn't exist. 
    */ 
    void addCandidateGroup(String taskId, String groupId); 

当您添加候选组,您可以通过获取任务:

taskService.addCandidateGroup(task.getId(), "sales"); 
    assertNotNull(taskService.createTaskQuery().taskCandidateGroup("sales").singleResult()); 

欲了解更多信息Activiti中源检查org.activiti.engine.test.api.task.TaskServiceTest#testDeleteTaskIdentityLink

+1

只为Martin的答案添加一些颜色(这是绝对正确的)。任务只能“分配”给单个用户,这是负责完成任务的用户。但是,如果任务可以由多个用户主张,那么这些用户被视为“候选人”。考生可以从个人用户,团体甚至是两者的组合中进行设置。任何非“已分配”的任务都可以由任何注册的“候选人”申请。 希望这会有所帮助。 –

相关问题