JULY 21, 2017

Author: Tijs Rademakers

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 (CommandCommandContextInterceptorCommandExecutorLog/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.

Tijs_Rademakers_MG 8595

Tijs Rademakers

VP Engineering

BPM enthusiast and Flowable project lead

Share this Blog post
Engineering | JUNE 21, 2022

Visual debugging of BPMN and CMMN with Flowable Inspect

Visual debugging of BPMN and CMMN with Flowable Inspect One of the smartest and unique features of Flowable is the ability to debug and…Read more

Blog post React UI header
Business | MARCH 24, 2022

Reacting when your UI framework reaches end of life

Our long-serving automation editing application, Flowable Design, was built using the AngularJS UI framework. Time to react. Well, to React.Read more

Engineering | FEBRUARY 17, 2022

Running Flowable with Spring Native

In this post, we'll look at what it takes to run Flowable on GraalVM using the latest Spring Native release.Read more