Как получить информацию о текущем развернутом процессе, чтобы отобразить пользовательскую диаграмму процесса в Activiti

Мы используем Activiti для моделирования процессов в нашей среде spring-mvc.

Я хотел бы создать собственный обзор всего процесса, включая текущую позицию процесса.

Activiti предоставляет возможность создать png с помощью

ProcessDiagramGenerator.generatePngDiagram

См. документация

Однако я хотел бы создать собственный рендеринг процесса на странице html. Для этого мне нужна информация о процессе.

Что делает это таким сложным, так это то, что я хочу показывать только пользовательские задачи конкретного пользователя и делать это для нескольких процессов. Некоторым не хватает нескольких шагов.

Я знаю, как получить текущие активные задачи, но меня больше интересуют все возможные задачи, с которыми пользователь столкнется в процессе.

Кто-нибудь знает, как получить, например. список всех пользовательских задач конкретного пользователя для процесса, развернутого в движке?


person David    schedule 04.12.2012    source источник


Ответы (1)


если вам нужен список задач, для которых пользователь является кандидатом, вы можете использовать:

List<Task> userCandidateTasks = taskService.createTaskQuery().taskCandidateUser(username).list();

или для задач, назначенных этому пользователю:

List<Task> userAssignedTasks = taskService.createTaskQuery().taskAssignee(username).list();


затем, если вы хотите, чтобы они отображались на диаграмме, вы можете получить идентификаторы нужных вам задач (например, вы можете объединить обе задачи, кандидатом и уполномоченным которых является пользователь), а затем просто передать список идентификаторов к методу:

InputStream imageStream = ProcessDiagramGenerator.generateDiagram(processDefinition, "png", tasksIdList);
person rptmat57    schedule 05.12.2012