Перечислите все задачи для данного Процесса в порядке выполнения - PullRequest
0 голосов
/ 09 октября 2019

Это базовый функционал, и я вижу повторяющиеся вопросы, но, к сожалению, пока нет четкого ответа.

Как мне распечатать / перечислить все задачи в данном процессе (завершенные / незавершенные) в порядке выполнения.

Два решения, которые я нашел на форуме, работают как положено

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

Как мне просто перечислить все задачи в рамках данного процесса.

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Если под задачами вы подразумеваете все элементы процесса, то вы можете использовать HistoricActivityInstanceQuery для получения информации о них.

Код будет выглядеть примерно так:

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

Чтобы увидеть, закончен ли HistoricActivityInstance или нет, вам нужно проверить HistoricActivityInstance#getEndTime(). Когда это null, это означает, что действие не завершено, если это null, то это означает, что оно завершено.

0 голосов
/ 09 октября 2019

Вы можете создать TaskQuery

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

@Autowired
private ProcessEngine processEngine;

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

...