Camunda BPMN - Task listener vs Execution listeners

Ramdas Nair picture Ramdas Nair · Apr 8, 2015 · Viewed 15.4k times · Source

I've been using Camunda BPMN 2.0 for one of my workflow applications. In one of my service tasks, I created an execution listener at the start event and a task listener at the create event. I'm not sure whether it's proper to assign these simultaneously at the start event. If it's correct, which one of them will be getting executed first - Execution listener or Task Listener, at start or create event, respectively ?

Answer

thorben picture thorben · Apr 8, 2015

Task listeners can only be used with user tasks, since they provide callbacks when task (i.e. the task a human has to perform) state changes, cf http://docs.camunda.org/latest/guides/user-guide/#process-engine-delegation-code-task-listener

Assuming you have a user task like

<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>

When the user task is executed

  1. The execution listener is called
  2. The task listener is called

In general, the task listener event cycle is contained between execution listener events start and end. So the cycle when a user task is executed is:

  1. ExecutionListener#start
  2. TaskListener#create
  3. TaskListener#{assignment}*
  4. TaskListener#{complete, delete}
  5. ExecutionListener#end