Camunda Team Blog

Camunda BPM 7.4.0 Alpha 1 Released

Written by Daniel Meyer on , under Execution category.
Today we release Camunda BPM 7.4.0-Alpha1. This is the first alpha release previewing the upcoming 7.4.0 Release.

The highlights of this release are:
  • DMN (Decision Model and Notation): DMN Engine and browser based Decision Table Editor,
  • Job Priorities: Control execution order of asynchronous Jobs,
  • Enhanced BPMN Support: add Signal Start events, Compensation Event Subprocess, enhanced asynchronous continuations for Multi Instance Activities,
  • Native support for File Variables in Api and Html Forms,
  • Many Bugfixes

Overall more than 140 issues were closed. See complete Release Notes in Jira.

DMN: Decision Model and Notation

This is the first release which supports DMN (Decision Model and Notation). DMN is a new OMG (Object Management Group) standard for Business Decision Management. (Some of you may also be familiar with the term "Business Rules Management".)
DMN allows developers and business people to collaborate around different phases of modeling, testing, executing, monitoring and improving Business Decisions.

This Camunda BPM release adds
While these components are currently in an early stage of development, it is already possible to create a decision table in the browser, add it to your java development project, reference it from a BPMN Business Rule Task, and execute the corresponding process.

For an example, checkout the Invoice Demo (Sources) shipped with our distribution.

You can try out a demo of the browser based decision editor here:
Over the next days we will publish a dedicated blogpost on DMN.
You should also read Bernd's Post at bpm-guide.

Job Priorities

It is now possible to control the order in which asynchronous jobs are executed. See the corresponding documentation.
We will publish a dedicated blogpost on Job Priorities later. Here it is!

Enhanced BPMN Support

This release again enhances BPMN support. It is now possible to use

Native support for File Variables in Api and Html Forms.

We added native support for File Variables to the Java API, Rest API and in HTML Forms.

Let's start with the forms. In a Form you can now easily allow a user to upload a file:
The corresponding html code would looks like this:
<input type="file"
       cam-variable-name="INVOICE_DOCUMENT"
       cam-variable-type="File"
       cam-max-filesize="10000000" />

And download it (with the correct Filename):
The corresponding html code looks like this:
<a cam-file-download="INVOICE_DOCUMENT"></a>

Read more about File support Html Forms in the Documentation.

In your Java code you can work with files using the new FileValue type:
public class ArchiveInvoiceService implements JavaDelegate {

  public void execute(DelegateExecution execution) throws Exception {

    // get file value using typed api
    FileValue invoiceDocumentVar = execution.getVariableTyped("INVOCE_DOCUMENT");

    InputStream content = invoiceDocumentVar.getValue();
    String filename = invoiceDocumentVar.getFilename();
    String mimeType = invoiceDocumentVar.getMimeType();

    // untyped api returns the InputStream only
    InputStream invoiceDocument = (InputStream) execution.getVariable("INVOCE_DOCUMENT");

    // create a new file variable:
    execution.setVariable("DOC", fileValue(new File("location/doc.pdf")));
  }

}
Find more details in the Documentation.

File Support was a much requested feature by the community.

We hope you enjoy this release!

What's up next?


  • DMN, DMN, DMN, ... :)
  • We will continue to enhance the BPMN support by implementing BPMN Escalation,
  • Support for Tomcat 8,
  • Support for CMMN Repetition Rule,
  • As always, amazing things are happening in bpmn.io,
  • ...