Я использую Camunda BPMN 2.0 для одного из своих приложений рабочего процесса. В одной из моих служебных задач я создал прослушиватель выполнения в событии start и прослушиватель задачи в событии create. Я не уверен, правильно ли назначать их одновременно в стартовом событии. Если это правильно, какой из них будет выполняться первым - прослушиватель выполнения или прослушиватель задач, при запуске или событии создания, соответственно?
Camunda BPMN - слушатель задач против слушателей выполнения
comment
Не могли бы вы показать свой код? Что ты пробовал?
- person abarisone   schedule 08.04.2015
comment
@abarisone Я назначил слушателей непосредственно на служебные задачи на диаграмме BPMN через Eclipse.
- person Ramdas Nair   schedule 08.04.2015
Ответы (1)
Прослушиватели задач могут использоваться только с пользовательскими задачами, поскольку они обеспечивают обратные вызовы при изменении состояния задачи (т. Е. Задачи, которую должен выполнить человек), cf http://docs.camunda.org/latest/guides/user-guide/#process-engine-delegation-code-task-listener
Предполагая, что у вас есть пользовательская задача вроде
<userTask id="task1" name="My task" >
<extensionElements>
<camunda:executionListener event="start" class="com.example.MyExecutionListener" />
<camunda:taskListener event="create" class="com.example.MyTaskListener" />
</extensionElements>
</userTask>
Когда пользовательская задача выполняется
- Слушатель выполнения называется
- Слушатель задачи называется
Как правило, цикл событий прослушивателя задач содержится между событиями прослушивателя выполнения start
и end
. Итак, цикл выполнения пользовательской задачи:
- ExecutionListener # start
- TaskListener # создать
- TaskListener # {assignment} *
- TaskListener # {complete, delete}
- ExecutionListener # конец
person
thorben
schedule
08.04.2015
Сначала я добавил TaskListener # Create и только потом добавил ExecutionListener # start, установив его в свойствах моей пользовательской задачи на диаграмме bpmn. Я обнаружил, что поток идет непосредственно в taskListener, а не в executionListener. Так что мне нужно изменить порядок в моем текущем порядке XML: ‹extensionElements› ‹camunda: taskListener event = create class = com.example.MyTaskListener /› ‹camunda: executionListener event = start class = com.example.MyExecutionListener /› ‹ / extensionElements ›
- person Ramdas Nair; 08.04.2015
Порядок элементов в XML не должен иметь значения, и в тестовом случае мне не удалось воспроизвести вашу проблему. Я предлагаю вам поднять это как проблему на форумах Camunda и предоставить тестовый пример: groups.google.com/forum / #! forum / camunda-bpm-users
- person thorben; 08.04.2015
Спасибо @thorben. Как выяснилось, проблема заключалась в том, что я не указал полное имя пакета в атрибуте class слушателя выполнения. Еще один вопрос, который я хотел бы задать: если я использую два прослушивателя задач с созданием события, будут ли вызваны оба?
- person Ramdas Nair; 08.04.2015
Да, вызываются оба. Но гарантированного заказа нет. Если это важно, вы можете подумать о реализации составного TaskListener.
- person thorben; 08.04.2015