Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

The Taskana TASKANA Adapter syncs tasks between TASKANA and an external workflow system, e.g. Camunda BPM. In this document, we call a task in the external workflow system 'referenced task'.

The adapter periodically performs the following work::

  • retrieve new referenced tasks and create corresponding Taskana TASKANA tasks
    * retrieve newly created referenced tasks
    * get the task’s including desired process variables
    * map referenced task to Taskana TASKANA task
    * create an associated Taskana TASKANA task
    * remember the tasks created in the adapter’s databasedelete outbox entry for the successfully created TASKANA task

  • retrieve finished referenced tasks and terminate corresponding Taskana TASKANA tasks
    * retrieve finished referenced tasks
    * terminate corresponding Taskana TASKANA tasks

  • retrieve finished Taskana TASKANA tasks and complete corresponding referenced tasks
    * retrieve finished Taskana TASKANA tasks
    * complete the corresponding referenced tasks in the external system

  • cleanup Adapter’s database tables
    * delete aged entries from the adapter’s database tablesretrieve claimed TASKANA tasks and claim corresponding referenced tasks
    * retrieve claimed TASKANA tasks
    * claim the corresponding referenced tasks in the external system

  • retrieve TASKANA tasks where the claim was cancelled and cancel the claim of the corresponding referenced tasks
    * retrieve cancel claimed TASKANA tasks
    * cancel claim the corresponding referenced tasks in the external system

The adapter is structured in an adapter proper that controls the logic and two SPISPIs:

  • The SystemConnector SPI that connects to the external system and

  • The TaskanaConnector SPI that connects to the taskana TASKANA system.


The component structure of the adapter is as follows

Component

Description

taskana-adapter

The adapter. Implements the sync algorithm and defines the service provider SPIs and APIs for

- SystemConnector (connects to the external system)

- TaskanaConnector (connects to taskana)

These connectors are plugged in at runtime via SPI mechanisms

taskana-adapter-sample

contains Application main class and properties for taskana-adapter. Creates a Spring-Boot executable.

taskana-adapter-wildfly-example


contains Application main class and properties for taskana-adapter. Creates a war file that can be deployed to JBoss or Wildfly.taskana-adapter-camunda-system-connector

Sample implementation of SystemConnector SPI. Connects to a camunda systems system via camunda's REST API

taskana-adapter-taskana-connector

Sample implementation of TaskanaConnector SPI. Connects to one taskana system via taskana's java api which accesses the database directly.

Notes

...

taskana-adapter-camunda-listener

Contains a TaskListener, ParseListener, ParseListenerProcessEnginePlugin and OutboxSchemaCreator as client-side components of the camunda-system-connector

taskana-adapter-camunda-outbox-rest

An outbox REST-Service which allows the adapter to query events from the outbox tables, implemented using JAX-RS.

taskana-adapter-camunda-outbox-rest-spring-boot-starter

SpringBoot-Starter in case the REST-Service is used within a SpringBoot-Application

taskana-adapter-camunda-spring-boot-sample

SpringBoot-Application containg the adapter with the sample camunda-system-connector implementation

taskana-adapter-camunda-wildfly-example

Example that can be deployed on Wildfly and contains the adapter with the sample camunda-system-connector implementation

taskana-adapter-camunda-listener-example

Example Process-Application that can be deployed to camunda

camunda-outbox-example-boot

SpringBoot-Application containing camunda and the outbox-rest

taskana-adapter-camunda-spring-boot-test

SpringBoot-Application containing camunda, the adapter and the outbox REST-Service to test a complete scenario with automated integration tests

Notes

  1. Variables
    When the adapter finds a referenced task for which a TASKANA task must be started, it retrieves the desired variables of the referenced task's process. These variables are stored in the custom attributes of the corresponding taskana task in a HashMap. The names of the variables, prefixed with “camunda:” (e.g. camunda:someVariable) will be the keys. The prefix is used to determine which custom attributes of the TASKANA task should later be played back to camunda . The values are of type String that and contain the Json JSON representations of the variables.

  2. Workbaskets
    Task / workbasket mapping has been kept to a minimum. If the adapter creates a taskana task, it puts it into the workbasket of the referenced task’s assignee. If this workbasket doesn't exist, it is created (together with some workbasket_access_items). If the task has no assignee, it is put into a default workbasket with name DEFAULT_WORKBASKET.The workbasket for the tasks can either be declared as a process variable (see “Information mapping from Camunda BPM to TASKANA” here ) or the task routing SPI can be implemented to apply custom routing logic (see here)