Camunda Team Blog

Camunda 7.8.0-alpha1 Released

Written by Tassilo Weidner on , under Execution category.

We are excited to announce the first alpha release of Camunda BPM 7.8.

It is packed with new features. In a nutshell, the highlights are:

  • Timezone support
  • Statistics for history cleanup
  • More notation elements for the fluent BPMN builder API
  • New batch operation for changing the suspension state of process instances
  • Upgrade to the latest version of MyBatis
  • 22 Bug Fixes

Also see the complete list of release notes and the list of known issues.

Be one of the first to try Camunda BPM 7.8! You can download it or run it with docker. There is no reason to hesitate – it is free!

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

Timezone Support

This release introduces the possibility to operate Camunda BPM in a setting that involves multiple timezones. Previously, all users were supposed to be in the timezone of the server which runs the engine. Starting with this release, the default date format includes explicit timezone information so that users in different timezones can easily collaborate.

In the new format yyyy-MM-dd'T'HH:mm:ss.SSSZ the Z stands for the zero UTC offset zone designator.

If you prefer to use the old format, have a look at the custom date format documentation to find out how to change the date format.

Heads up!

Please bear in mind that this change might affect your embedded task forms or custom webapp plugins. To work with the new default date format, you need to send dates with timezone information included.

Statistics for the History Cleanup

With the last minor release of Camunda BPM, the History Cleanup feature was introduced. It allows to remove outdated historic data on a periodical basis.

This release brings possibilities to monitor the removed data, which helps to choose the best suited settings for the history cleanup, based on metrics and reports. The metrics are provided for instances of BPMN, CMMN and DMN definitions.

Additionally, the report of finished process instances highlights processes which cause bigger amounts of historic data. This helps to take a well-informed decision for the history time to live parameter.

For more details, please see the documentation about Metrics and the Finished Process Instance Report.

More Notation Elements for the Fluent BPMN Builder API

The fluent BPMN builder API allows to create simple process definitions in Java. This release expands the range of notation elements by event subprocesses and compensation markers for activities.

The event subprocess can be added to the process builder in the manner of creating a new process. Before the compensation marker for an activity can be used, a boundary event has to be attached to the task which should be possible to compensate.

Here you can find a simple Java example which includes both newly introduced notation elements:

ProcessBuilder process = Bpmn.createProcess();

// Compensation marker for activity (user task)
BpmnModelInstance instance = process
  .startEvent()
    .userTask()
      .boundaryEvent()
        .compensateEventDefinition()
        .compensateEventDefinitionDone()
        .compensationStart()
          .userTask()
            .name("compensate")
        .compensationDone()
  .endEvent()
  .done();

// Event subprocess
process.eventSubProcess()
  .startEvent()
    .userTask()
  .endEvent();

When the Fluent BPMN builder API generates the BPM diagram graphically, the event subprocess will be placed underneath the BPMN diagram:

New Batch Operation to Change the Suspension State of Process Instances

The concept behind batch operations is to provide a solution for applying administrative operations on a huge number of process instances without a need for manual intervention.

This release adds the operation to update the suspension state of process instances. The process instances which are supposed to be processed by the batch operation can be defined in three ways:

  • By listing each process instance id separately
  • By a process instance query
  • By a historic process instance query

The batch operation can be executed synchronously or asynchronously.

This example shows how to suspend process instances asynchronously:

runtimeService.updateProcessInstanceSuspensionState()
	.byProcessInstanceIds(processInstance1.getId(), processInstance2.getId())
	.suspendAsync();

To find out how to use this feature, please see the documentation of the Java API as well as the REST API .

Upgrade to the Latest Version of MyBatis

MyBatis was upgraded to its latest version, 3.4.4. This resolves the issue of a NullPointerException in heavy load scenarios which was caused by a MyBatis bug.

Take a Sneak Peek at What Is Next

We are already eagerly busy preparing for the next alpha release, which is scheduled for end of July.

Among other things, we are working on the following features, which are planned to be released in one of the next alpha releases:

  • Batch modification of process instances (EE)
  • Faster rendering of BPMN diagrams in Cockpit
  • OR in task queries

And that is not all: if you are interested, take a look at the roadmap.

The minor release of Camunda BPM 7.8 is coming this fall (November 30, 2017).

Your Feedback Is Highly Appreciated!

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

You can contact us by writing a post in the forum.