Alfresco:查询用户列表的工作流任务

时间:2015-03-13 14:20:40

标签: java alfresco activiti

我希望能够使用Activiti查询分配给用户列表的工作流任务。例如,分配给user1或user2的查询任务。 我已经阅读了WorkflowServiceImpl.java和ActivitiWorkflowEnginge.java的代码,实际上WorkflowTaskQuery能够查询分配给只有1个用户的任务。 我找不到如何创建一个添加我需要的功能的新方法:我不明白如何转换查询以及我可以修改的内容。 我想如果可以使用luceneSearch进行此类查询。

谢谢,

1 个答案:

答案 0 :(得分:1)

如果对于用户列表,您指的是一个组,您可以使用带签名的方法

以这种方式

List<WorkflowTask> getPooledTasks(String authority)

getWorkflowService().getPooledTasks(groupName);

通常,您可以使用以下方法:

List<WorkflowTask> queryTasks(WorkflowTaskQuery query,
                              boolean sameSession)

然后像:

WorkflowTaskQuery query = new WorkflowTaskQuery();
query.setActive(true);
query.setTaskState(WorkflowTaskState.IN_PROGRESS);
query.setActorId("username");
List<WorkflowTask> results = workflowService.queryTasks(query, false);

其中,用户名代表您正在寻找的用户。 您可以轻松地遍历用户列表以实现所需,但如果此列表很长,您可能会遇到性能问题。

您可以考虑创建一个临时存储库组,然后将其添加到列表的所有用户中,最后对该组执行池化查询。

请记住,WorkflowTaskQuery对象只不过是您可以为queryTasks方法构建的过滤器。