Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Camunda BPMN - Task listener vs Execution listeners

Tags:

bpmn

camunda

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 ?

like image 673
Ramdas Nair Avatar asked Apr 08 '15 05:04

Ramdas Nair


People also ask

What is execution listeners in Camunda?

Listeners allow you to execute external Java code or evaluate an expression when certain events occur during process execution. Listeners are a mechanism that is very often used during process development.

What is execution listener?

Execution listeners allow to instrument the execution of guest languages. For example, it is possible to attach an execution listeners that is invoked for every statement of the guest language program, similar to how a debugger would single-step through the program.

What is task listener?

public interface TaskListener. Provides a listener to monitor the activity of the JDK Java Compiler, javac.

What is user task in Camunda?

A user task is used to model work that needs to be done by a human actor. When the process instance arrives at such a user task, a new job similar to a service task is created. The process instance stops at this point and waits until the job is completed.


1 Answers

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
like image 116
thorben Avatar answered Sep 22 '22 16:09

thorben