Flowable 6.2.1 release

December 11, 2017 by Flowable

Today we released a new version of Flowable with the 6.2.1 release.

The 6.2.1 release has the following highlights:


  • Lots of additions to the CMMN 1.1 Engine, including timer support, repetition support, DMN and HTTP task support and variable query support.
  • Rest documentation is now also generated based on the Swagger definitions to ensure it’s always in sync with the REST controller code.
  • Improved support of ChangeActivityStateBuilder to move an execution in a process instance to another activity that’s part of the process definition.
  • Enhanced the CMMN Modeler palette with timer event listeners, DMN and HTTP tasks and additional properties like timer expressions and repetition expressions.
  • Improved support of CMMN in the Flowable Task app.
  • Various small bugfixes all around.

Community contributors

  • Pascal Schumacher (PascalSchumacher)
  • Stijn de Pestel (stijndepestel)
  • Robert Hafner (roberthafner)
  • Xin Wang (dram)
  • David Malkovsky (dbmalkovsky)
  • Michael Lippens (mlippens)
  • Marco van Zwetselaar (zwets)
  • Yanming Zhou (quaff)
  • Christophe Deneux (cdeneux)

Upgrade notes

To harmonize the deployers between the BPMN and CMMN engine the ProcessEngineConfigurator interface has been renamed to EngineConfigurator and moved to the flowable-engine-common module. In addition a new flowable-spring-common module has been added to shared common Spring classes between the BPMN and CMMN spring modules.

Flowable 6.2.0 release

October 13, 2017 by Flowable

Today we released a new version of Flowable with the 6.2.0 release.

The 6.2.0 release has the following highlights:


  • Introduction of a new CMMN 1.1 Engine. This provides an implementation of the CMMN 1.1 OMG standard (http://www.omg.org/spec/CMMN/1.1/). A lot of effort has been put in this new Engine, and it uses a new set of database tables optimized for CMMN execution. We’ve added a new CMMN user guide to help you getting started. Note that since this is a first release, the CMMN Engine is marked as an experimental feature and missing features like timers and HTTP and Decision tasks will be added in next releases.
  • Added a CMMN editor to the Flowable Modeler app.
  • Added support for CMMN cases ot the Flowable Task app.
  • The BPMN and CMMN engine share a number of common services like Tasks, Variables, Identity links and Jobs. Therefore these services are extracted from the core BPMN engine module and new modules have been created for each one of these services. The BPMN and CMMN engines make use of these services to provide for example Task and Variable support. With this approach Flowable is very flexible in the deployment model. You can run only the BPMN Engine, only the CMMN Engine or run them both together without any issues.</li>
  • Various small bugfixes all around.

Community contributors

  • David Malkovsky (dbmalkovsky)
  • Filip Hrisafov (filiphr)
  • Robert Hafner (roberthafner
  • Marco van Zwetselaar (zwets)
  • Lori Small (lsmall)
  • Michael Lippens (mlippens)

Upgrade notes

Because of the extraction of the Task, Variable, Identity Link and Job services, we had to change the package names of the classes used in these modules. This means that for example TaskQuery and Job Query have been moved to a new package. This was done to adhere to OSGi standards and to be ready for the new Java 9 version. This however does mean that you run into some compilation issues while migration to version 6.2.0. We always try to prevent this as much as we can, but due to the new modules this wasn’t possible in this release. The common naming pattern of these new service is org.flowable.{servicename}.api for the API module and org.flowable.{servicename}.service for the service implementation module. So org.flowable.task.api and org.flowable.task.service for example.

Flowable 6.1.1 release

July 21, 2017 by Flowable

Today we released a new version of Flowable with the 6.1.1 release.

The 6.1.1 release has the following highlights:


  • Introduction of audit history in the DMN Engine. When history is enabled in the DMN Engine, an audit log of each decision execution is stored in the DMN database. By default the history is disabled.
  • Replaced the MVEL expression language in the DMN Engine with the same JUEL expression language as used in the BPMN and Form Engine.
  • Refactored DmnRuleService with new ExecuteDecisionBuilder and deprecated old execute decision methods.
  • Call activity: allow to set output parameters a local variables for multi instance executions.
  • Easier usage of async history in combination with a message queue (see https://github.com/flowable/flowable-examples/tree/master/async-history)
  • Performance improvement: introduce grouping and compression for async history data.
  • Various small bugfixes all around.

Community contributors

  • Faizal Abdul Manan (faizal-manan)
  • David Malkovsky (dbmalkovsky)
  • Harsha Teja Kanna (h7kanna)
  • Lori Small (lsmall)
  • bsydow
  • stephraleigh

Upgrade notes

CommandContext and related classes package changes:

As a result of a refactoring that involved consolidating various classes and moving them to the flowable-engine-common module, following internal classes have changed packages.

The following applies to all engines (process, dmn, form, content and idm):

  • The CommandContext class is now in the org.flowable.engine.common.impl.interceptor package.
  • The various getter methods on the CommandContext that gave quick-access to various internal components are removed (because the CommandContext is now shared between all engines). All engines now have a CommandContextUtil class that should be used instead and which has said getter methods. The org.flowable.engine.impl.context.Context utlity class in the process engine is still there for backwards compatibility and can be used as before, but simply delegates to the CommandContextUtil methods.
  • The classes related to the command stack interceptors (Command, CommandContextInterceptor, CommandExecutor, Log/Jta/RetryInterceptor) are now in the org.flowable.engine.common.impl.interceptor package.
  • The DbSqlSession and DbSqlSessionFactory classes are now found in the org.flowable.engine.common.impl.db package.
  • Database schema management logic has moved from the DbSqlSession class to implementations of the org.flowable.engine.common.impl.db.DbSchemaManager interface.
  • The GenericManagerFactory class is now in the org.flowable.engine.common.impl.persistence package.

The process engine now has the org.flowable.engine.impl.util.EngineServiceUtil utility class that can be used to get easily access to the configuration and services of the other engines.

FlowableCancelledEvent.getCause() return value change

The value that’s passed in the cause of a org.flowable.engine.delegate.event.FlowableCancelledEvent has changed in the following cases:

  • The event that is thrown for activities cancelled by a message boundary event.
  • The event that is thrown for activities cancelled by a signal boundary event.
  • The event that is thrown for activities cancelled by a timer boundary event.

Instead of passing an entity instance (MessageEventSubscriptionEntity, SignalEventSubscriptionEntity or JobEntity respectively) the BpmnModel counterpart, as an instance of a subclass of org.flowable.bpmn.model.FlowElement, is passed instead which is consistent with the general value of the cause property. Do note that due to the fact the return type of getCause() is Object, the compiler will not notice this, so best to look at the usage of the FlowableCancelledEvent in your code.

A big thank you to the whole Flowable team for making this release possible. You can use the forum to ask specific questions about the 6.1.1 release, any feedback is welcome.

Flowable 6.1.0 release

June 27, 2017 by Flowable

Today we released a new version of Flowable with the 6.1.0 release.

The 6.1.0 release has the following highlights:


  • Introduction of async history. By enabling the asyncHistoryEnabled property on the process engine configuration (default is false), the history tables are not filled in the same transaction as the runtime tables. Instead an async history job is created and the history information will be written to the history tables in a separate, asynchronous transaction. This also opens up the option to not use the relational history tables at all, and move the historic information to a NoSQL database directly. Pluggability points are available to implement the persistence logic to a NoSQL database.
  • New REST task feature thanks to Harsha. With the new REST task it becomes trivial to do REST calls from a Flowable process instance. There’s also support in the Flowable Modeler for REST tasks.
  • Introduction of a new DMN decision table editor. To improve the usability of the DMN decision table editor we are now using the Handsontable framework.
  • The Odysseus JUEL code is now included directly in the flowable-engine-common module to prevent classloading issues due to conflicting JUEL libraries or even different versions of JUEL libraries.
  • Added option to use a password encoder for the Flowable IDM engine (instead of the default plain text password persistence), thanks to Faizal!
  • Support for static Groovy scripts compilation with the new flowable-groovy-script-static-engine module by using the groovy-static scriptFormat value, thanks to Filip (fgroch)!
  • Several additions to the Form builder and renderer (min/max length, improved expression field and more).
  • Various small bugfixes all around.

A big thank you to the whole Flowable team for making this release possible. You can use the forum to ask specific questions about the 6.1.0 release, any feedback is welcome.

Welcome back Joram Barrez

May 29, 2017 by Flowable

Joram Barrez has been one of the driving forces for open source BPM for almost 10 years. So it wasn’t easy when he needed to step away for some time from the Flowable project. But now he’s back and fully committed to help driving the Flowable project with lots of new energy and ideas. From the whole Flowable team and community, we just wanted to say: “Welcome back Joram!”.

Also taking this opportunity to add a link to our new Flowable roadmap page. If you want to see other features being added to the roadmap, get in contact with us on the Flowable forum.