1

这是一个基本功能,我看到重复的问题,但不幸的是还没有明确的答案。

如何按执行顺序打印/列出给定流程(已完成/未完成)中的所有任务。

我在论坛上找到的两个解决方案按预期工作

repositoryService.getBpmnModel().getFlowElements() - Does not print in the order of execution . Printed in the order of definition
historyService.createHistoricActivityQuery - Does not print all Service task

我如何仅列出给定流程下的所有任务。

4

2 回答 2

0

如果任务是指流程中的所有元素,那么您可以使用HistoricActivityInstanceQuery获取有关它们的信息。

代码看起来像:

List<HistoricActivityInstance> activityInstances = historyService
    .createHistoricActivityInstanceQuery().
    .processInstanceId(processInstanceId)
    .orderByHistoricActivityInstanceStartTime().asc()
    .list();

为了查看 aHistoricActivityInstance是否完成,您需要检查HistoricActivityInstance#getEndTime(). 如果是null,则表示活动尚未完成,如果是,则null表示活动已完成。

于 2019-10-09T06:19:38.677 回答
-1

您可以创建一个任务查询

import org.camunda.bpm.engine.ProcessEngine;
...

@Autowired
private ProcessEngine processEngine;

private List<Task> getAllTaskByProcessId(string processInstanceId){
  return processEngine.getTaskService()
    .createTaskQuery()
    .processInstanceId(processInstanceId)
    .list();
}

于 2019-10-09T05:26:02.323 回答