Camunda Team Blog

Camunda BPM 7.10.0 Released

Written by Nikola Koevski on , under Execution category.

We’re excited to announce that Camunda BPM platform 7.10.0 is now available. Highlights from Camunda 7.10.0 include:

  • History Cleanup across hierarchies
  • Fetch and Lock External Tasks based on Process Definition and Tenant
  • Extending the “Handle External Task BPMN Error” API
  • Tasklist-startable Process Definitions
  • Configure Business Key in Delegation Code
  • Additional Supported Environments
  • 89 Bug Fixes

You can download Camunda 7.10.0 for free or run it with Docker.

Also included in the release:

To see a complete list of the changes, please check out our Release Notes and the list of Known Issues.

If you want to dig in deeper, you can find the source code on GitHub.

History Cleanup Across Hierarchies

When creating a BPMN process, it is possible to introduce Call Activities which can in turn reference BPMN processes. This makes it possible to model process hierarchies spanning multiple levels.

Previously, historical data related to child processes was cleaned-up without taking the runtime of the top-level process into account. This led to inconsistencies, as it was possible that the historical data of child processes was cleaned-up before the respective top-level process instance has been finished.

History cleanup across hierarchies

Starting with this release, a new cleanup strategy has been introduced to tackle this issue: each historical instance inherits the removal time of the top-level process instance. This ensures historical data is always cleaned up consistently.

To learn more about how the new cleanup strategy works, please see the updated History Cleanup documentation.

Fetch and Lock External Tasks based on Process Definition and Tenant

External tasks are the right pattern for you when some logic needs to be implemented/executed outside of the engine. With this approach, the process engine publishes a unit of work for a worker to fetch and complete. In this release, the fetch and lock mechanism is extend further by filtering tasks based on two new options - process definition and tenant id. You can find a java example below:

externalTasks = externalTaskService.fetchAndLock(2, "aWorkerId")
      .topic("createOrder", 10000)
      .processDefinitionId("aProcessDefinitionId")
      .withoutTenantId()
      .execute();

This is available in the REST API as well. For more infomation please see the REST documentation.

The feature is exposed in the latest version of the external task clients NodeJS client and Java client.

Extending the “Handle External Task BPMN Error” API

During process execution, a business error can occur. In the world of external tasks, the worker can report a BPMN error to the process engine by using handleBpmnError method of the ExternalTaskService (or the respective REST API endpoint). The method can only be invoked by the worker possessing the most recent lock for a task. When reporting this kind of BPMN errors, additional data in the form of an error message and variables can now be passed. This additional information can then be used later in the process flow.

externalTaskService.handleBpmnError(externalTaskId, "aWorker", "ERROR-SPEC-10", "anErrorMessage", variables);

This is available via the Java API and REST API.

The feature is exposed in the latest version of the external task clients for NodeJS client and Java client.

Tasklist-startable Process Definitions

Imagine you have a process that’s referenced from a call activity of a parent process, or a process with a message, signal or conditional start events. Usually, such processes are not intended to be started directly, but rather triggered by some internal events. Until now, they would still be shown under the Tasklist “Start process” menu. Now, with the new process attribute “isStartableInTasklist”, you can define whether the process should be startable from Tasklist or not.

You can find a simple example of a process and further documentation in the user guide.

Please note that the user needs the following permissions to see a process definition in this list, and of course, to start one:

  • CREATE permission for all process instances
  • CREATE_INSTANCE and READ permissions at the process definition level

Configure Business Key in Delegation Code

Version 7.10 makes available the much-requested option to configure the business key of an already running process instance. The setting can be done inside delegation code (Execution listener, Task listener or Java delegate implementation). Here is an example:

public class SetNewBusinessKeyDelegate implements JavaDelegate {
   public void execute(DelegateExecution execution) throws Exception {
    execution.setProcessBusinessKey("businessKey");
  }
 }

You can find more information about the delegation code in our User guide. Not familiar with business keys? Check out this blog post: How to Use Business Keys?

Additional Supported Environments

Support for Java 9 / 10 / 11

Camunda BPM is now on the cutting-edge of Java, and this release brings support for Java 9 & 10 as well as for Java 11.

Extending our Database support

Version 7.10.0 also extends Camunda BPM database support, now adding PostgreSQL 10.4 and MariaDB 10.3 to our supported environments.

A Single WildFly distro

Finally, from Camunda BPM 7.10.0 onwards, a single WildFly distro will be provided, always with the latest version of WildFly (currently WildFly 14). New Camunda BPM users who wish to use Camunda with WildFly 8 or WildFly 10-13 will need to do a full manual installation on the appropriate vanilla WildFly application server. WildFly 8 continues to be supported through a separate camunda-wildfly8-subsystem (included with this archive).

And Much More

There are many smaller features and bug fixes in the release that aren’t included in this blog post. The full release notes provide the details.

Register for the Webinar

If you’re not already registered, be sure to secure a spot at the free release webinars, which is offered in German and English.

Your Feedback Matters!

With every release, we strive to improve Camunda BPM. To make this possible, we rely on your feedback. Feel free to share your ideas and suggestions with us.

You can contact us via the Camunda user forum.

Furthermore, if you have any feedback related to user experience, things that keep annoying you, things that you think should work differently, and so on, please share your thoughts with us at https://camundabpm.userecho.com.