When you try and run a Task Listener on a User Task for the Type: Complete, if you use JavaScript and try to reference execution, you get the following:
There was an exception while invoking the TaskListener. Message: 'Unable to evaluate script: ReferenceError: "execution" is not defined in at line number 1'
sample BPMN file:
TaskListnerTest.bpmn (3.2 KB)

Hi Stephen,
Using task listener you can reference execution currently at the task as follow
task.execution
Using execution listener you can reference execution as follow
execution
@hassang, you know where task.execution is documented?
Best i can find is that the variable task is available when using Task Listeners, but cannot find any reference to execution being part of task.
Thanks!
@Ingo_Richtsmeier Do you know why execution is inside of the Task variable? Just looking to understand the architecture / design.
Hi Stephen,
Based on TaskListener documentation below
https://docs.camunda.org/manual/7.3/guides/user-guide/#process-engine-delegation-code-task-listener
org.camunda.bpm.engine.impl.pvm.delegate.TaskListener interface must be implemented where there is only one method called “notify” with an instance of DelegateTask is available
I assumed Java & script behavior are equivalent (instance of DelegateTask —> task)
Script task listener examples show the availability of task instance (see below)
<userTask id="task">
<extensionElements>
<camunda:taskListener event="create">
<camunda:script scriptFormat="groovy">
println task.eventName
</camunda:script>
</camunda:taskListener>
</extensionElements>
</userTask>
& based on https://docs.camunda.org/javadoc/camunda-bpm-platform/7.5/org/camunda/bpm/engine/delegate/DelegateTask.html
You can get execution from DelegateTask object
In addition to Hassan’s answer, the section on task listeners as scripts confirms that task is an instance of DelegateTask.
Cheers,
Thorben
Thanks. Appreciate the details 