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:
- Camunda Spring Boot Starter 3.1.0, which relies on Spring Boot 2.0.2 by default.
- Node.js external task client 1.1.1 version for non-Java developers
- Java external task client 1.1.0 version can be embedded in Java applications
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.
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 information please see the REST documentation.
The feature is exposed in the latest version of the external task clients Node.js 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 Node.js 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 instancesCREATE_INSTANCE
andREAD
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.