Camunda BPM Connector
The Camunda BPM Connector is currently being developed. The information on this page is subject to change.
Interface to Camunda BPM
The Connector communicates with the process application (based on Camunda BPM) solely through REST APIs. Since the out of the box REST API of Camunda is not designed to retrieve all created human tasks including the required variables, the Connectors provides a dedicated additional REST endpoint, which needs to be added to the process application. This REST endpoint provides the details about created and deleted tasks in an efficient and fault tolerant way.
To allow the REST service to provide the information about new tasks and cancelled/terminated tasks, the Connector contains some client-side code. This code needs to be added to each process application which is connected to TASKANA.
The main part of this client-side code is the TASKANA TaskListener, which creates an event for each created or cancelled human task in the process. This event is stored in an dedicated event store, which is a database table placed in a seperate schema in the same database as the Camunda engine. This allows to write the event to the database inside the same transaction of the Camunda engine. The keeps the integrity of the event store stable.
Information mapping from Camunda BPM to TASKANA
Information | Source | Target | Comment |
---|---|---|---|
Domain | Process Variable 'taskana.domain' or Extension property 'taskana.domain' . | Task.domain | taskana.domain can be taken from process variables, process extension properties or task extension properties in the BPMN model. Domain definitions in process variables overwrites all other definitions. Task extension properties overwrites process extension properties. Process extension properties have the lowest importance. |
Classification | Extension property 'taskana.classification-key' from human task in the BPMN model. | Task.classification_key | In TASKANA, each task is associated with a classification. This concept does not exist in Camunda BPM. Therefore the additional required information is stored at the human task in the BPMN model. This way, each human task in the process can have its own classification. |
Taskname | Task.name | Task.name | |
Description | Task.description | Task.description | |
Assignee | Task.assignee | Task.owner | |
Due | Task.due | Task.due | |
Priority | Task.priority | - | Priority will be initialized from the configuration of the associated classifications. |
Task.creator | (Technical) user of the adapter | ||
Workbasket | Process variable with name 'taskana.workbasket-key' from human task in the BPMN model. | Task.workbasket_key | |
Manual priority | Process variable with name 'taskana.manual-priority' from human task in the BPMN model. | Task.manualPrioreity | If this process variable is existing, the manual priority will be set to its' value. If it is not existing the process variable will be set to the default value of -1. The process variable must be of type STRING but with an INTEGER value e.g. "555" |
Custom Integer Field 1 | Process variable with name 'taskana.custom-int-1' | Task.customInt1 | If this process variable is existing, the custom integer 1 will be set to its' value. If it is not existing the process variable will not be set. The process variable must be of type STRING but with an INTEGER value e.g. "555" |
Custom Integer Field 2 | Process variable with name 'taskana.custom-int-2' | Task.customInt1 | If this process variable is existing, the custom integer 2 will be set to its' value. If it is not existing the process variable will not be set.
The process variable must be of type STRING but with an INTEGER value e.g. "555" |
Custom Integer Field 3 | Process variable with name 'taskana.custom-int-3' | Task.customInt1 | If this process variable is existing, the custom integer 3 will be set to its' value. If it is not existing the process variable will not be set.
The process variable must be of type STRING but with an INTEGER value e.g. "555" |
Custom Integer Field 4 | Process variable with name 'taskana.custom-int-4' | Task.customInt1 | If this process variable is existing, the custom integer 4 will be set to its' value. If it is not existing the process variable will not be set.
The process variable must be of type STRING but with an INTEGER value e.g. "555" |
Custom Integer Field 5 | Process variable with name 'taskana.custom-int-5' | Task.customInt1 | If this process variable is existing, the custom integer 5 will be set to its' value. If it is not existing the process variable will not be set.
The process variable must be of type STRING but with an INTEGER value e.g. "555" |
Custom Integer Field 6 | Process variable with name 'taskana.custom-int-6' | Task.customInt1 | If this process variable is existing, the custom integer 6 will be set to its' value. If it is not existing the process variable will not be set.
The process variable must be of type STRING but with an INTEGER value e.g. "555" |
Custom Integer Field 7 | Process variable with name 'taskana.custom-int-7' | Task.customInt1 | If this process variable is existing, the custom integer 7 will be set to its' value. If it is not existing the process variable will not be set.
The process variable must be of type STRING but with an INTEGER value e.g. "555" |
Custom Integer Field 8 | Process variable with name 'taskana.custom-int-8' | Task.customInt1 | If this process variable is existing, the custom integer 8 will be set to its' value. If it is not existing the process variable will not be set.
The process variable must be of type STRING but with an INTEGER value e.g. "555" |
Custom attributes | List of relevant process variables (see comment) | Task.custom_attributes | Extension property 'taskana-attributes' from BPMN model contains a comma-seperated list of process variable names, which should be copied to TASKANA. These variables will be stored in the generic JSON structure 'custom_attributes'. |