Using the Camunda Tasklist

You will benefit from built-in features, so you will most probably need less development effort. You can customize the tasklist in various ways and leverage several task form mechanisms.
Using the Camunda Tasklist

Deciding About the Architecture

The Tasklist works best if you run it on a Shared Engine. This basically means that you can completely avoid the complexity that comes with integrating it into your architecture..

If you need to use the Tasklist in an Embedded Engine scenario, you have to include the Tasklist web application into your own application. The easiest way to do this is to leverage the "Maven Overlay" mechanism. Then you can use the Camunda Tasklist Maven dependency and have a reproducible and clean way to build your own application.

If you need to use the Tasklist in a Remote Engine scenario, there are two basic approaches:

  • Proxy: You can setup a small web application yourself, which serves as a proxy for all REST calls towards the Camunda Engine. The infrastructure to Embed the API can help you there. This Webapp also delivers the Tasklist client parts (to avoid problems with CORS). The downside of this approach is that you have to build and maintain this custom webapp yourself. If this is the approach you are interested. Then you might want to look into the Java or Rest API. These APIs will give you access to all the different services of Camunda’s Engine and therefore be able to update/view/create your processes. However, sometimes finding the right Rest API call can be a little difficult. If that is the case, you can always reverse engineer Camunda’s out of the box tasklist and extract the right API endpoints. To do so, all you have to do is go into developer console of your browser and record the network calls. From this network calls you can see the API endpoint path and use this for your custom tasklist application.

  • Standalone Webapp: You can deploy the "Camunda Standalone Webapp", which is a WAR running a small Process Engine inside of it. It is configured to look into the same database as your Remote Engine - and therefor can query and complete tasks. In this scenario you need database access from the "Camunda Standalone Webapp", but you’ll have one important restriction: When you complete a task, the process instance moves on. If it hits Delegation Code you are on the wrong engine which does not know your Java classes, hence you will get Exceptions. So you have to make use of Save Points in your process model, then the execution of the process instance is done by the Remote Engine having all necessary classes deployed. This implies that process execution will be asynchronous. In addition, make sure you set camunda.bpm.job-execution.deployment-aware engine property to true. This way each engine will be responsible of executing the jobs related to their own engine, registered process and therefore have access to the Java classes associated to such execution. Otherwise any engine could try to pick up the process where it left off (so called jobs) and run into class not found issues. More on this engine properties can be found here

We recommend to use the Shared Engine architecture whenever possible - as the most common problems are already solved out-of-the-box.

Using Best Fitting Form Mechanism(s)

Camunda tasklist currently offers four mechanisms for displaying start forms and task forms, all of which have their strength and weaknesses. You can decide to go for one single approach or you can also mix those approaches depending on your specific form usage considerations.

Embedded Forms Generated Forms Generic Forms External Forms

A highly customizable form displayed right inside Camunda tasklist

An easily definable form displayed right inside Camunda tasklist

A zero effort, generic form displayed right inside Camunda tasklist

A link to your form outside of Camunda tasklist and a way to return back

Production Readiness

User has to know exactly which variables to type in → typically not realistic

Seamless User Experience

Extensive Customization

Freedom of Technology Choice

Reusage of Existing Forms

Low Development Effort

Needed Skills

Start with HTML, do more with Javascript, JQuery and Angular

Define forms with BPMN XML extension elements

Display forms without doing any coding or effort

Depends on your own form mechanism

Use when

Always, unless there is a good reason not to.

For simple use cases, e.g. vacation approval processes

For rapid prototyping

You want to use a special technology or re-use existing forms

Learn more

Learn more

Learn more

Learn more

Previewing the Tasks

Sometimes you may want to display additional information before selecting a task to complete. Such as an invoice amount, order number, support contact or any relevant piece of information that may help your business users complete a task. In Camunda’s Tasklist you can do so by going into the filter configuration option and onto the variables tab. In there you can simply add the variables that you want to display.

In the following image you can see the end result of adding variables as keywords to your Tasks. Look at the Decide on Application user task. You can see information about the application number and the name. preview task

Branding the Tasklist

Adapt Camunda tasklist to your own branding needs. Learn more about how this can be done by looking at an example for a customized process application (changed colors, logo and language. You can also remove the application switch dropdown and adding custom plugins):

branding

Localizing the Tasklist

Localize the tasklist by creating your own translation file and including it in the configuration.

Look at the translation files already created for the community extension camunda tasklist translations.

Customizing the Tasklist via Plug-Ins

Leverage a very flexible plug-in mechanism to extend the tasklist’s capabilities (also see an example).

To do this you have to know REST/HTML/Javascript/AngularJS and some internals - so tasklist plugins are not that easy to build and might result in maintenance overhead if our tasklist changes. But consider that this still might be less effort than building a complete tasklist yourself - especially because Camunda tasklist will be enhanced with more features in the future - "for free".

No guarantee - The statements made in this publication are recommendations based on the practical experience of the authors. They are not part of Camunda’s official product documentation. Camunda cannot accept any responsibility for the accuracy or timeliness of the statements made. If examples of source code are shown, a total absence of errors in the provided source code cannot be guaranteed. Liability for any damage resulting from the application of the recommendations presented here, is excluded.

Copyright © Camunda Services GmbH - All rights reserved. The disclosure of the information presented here is only permitted with written consent of Camunda Services GmbH.