Process 找出候选组a任务的最佳方法是什么?

Process 找出候选组a任务的最佳方法是什么?,process,business-process-management,camunda,Process,Business Process Management,Camunda,在我加载带有taskQuery的任务列表之后 taskService.createTaskQuery() .processDefinitionKey(PROCESSKEY) .taskCandidateGroupIn(list).initializeFormKeys().list() 找出每一组候选人的最佳方法是什么? 我想在JSF视图中显示它,但是类任务没有相应的字段。您可以使用任务服务获取任务的标识链接。在其他关系中,候选组关系表示为身份链接

在我加载带有taskQuery的任务列表之后

taskService.createTaskQuery()
            .processDefinitionKey(PROCESSKEY)
            .taskCandidateGroupIn(list).initializeFormKeys().list()
找出每一组候选人的最佳方法是什么?
我想在JSF视图中显示它,但是类任务没有相应的字段。

您可以使用任务服务获取任务的标识链接。在其他关系中,候选组关系表示为身份链接。以下代码过滤任务的标识链接,以查找代表候选组的标识链接:

List identityLinks=taskService.getIdentityLinksForTask(task.getId());
用于(IdentityLink IdentityLink:identityLinks){
字符串类型=identityLink.getType();
/*类型对应于在IdentityLinkType中定义的常量。
“候选者”标识候选者关系*/
字符串groupId=identityLink.getGroupId();
if(IdentityLinkType.CANDIDATE.equals(type)&&groupId!=null){
//我们找到了一个候选群体;做点什么吧
}
}

最好的方法是编写一个自定义查询,通过on select以您需要的方式为您提供所有任务信息。您不希望开始在结果列表上循环,并为每个项目发送一个或多个查询,尤其是在高性能应用程序中,不希望将其作为任务列表


详细信息请查看

仅选择具有候选组的任务

List<Task> candidateGroupList = taskService.createTaskQuery().withCandidateGroups().list();
List candidateGroupList=taskService.createTaskQuery().withCandidateGroups().List();