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