Flowable 6.4.0 released


  • A first version of process instance migration has been added to the Flowable BPMN Engine. In the RuntimeService you can now use the createProcessInstanceMigrationBuilder to define and execute the process instance migration. This first version supports migrating process instances with wait states, embedded (event) sub processes and boundary events. In the next version more support will be added for more complex cases like parallel and inclusive gateways, multi-instance activities and call activities.
  • Expression support have been added for the BPMN and CMMN engines to make it easier to work with variables and in specific variables that may not have been initialized yet. When you reference a variable in an expression like {customerNumber > 40} and there is no customerNumber variable yet, an exception would be thrown. With the variable expression support this can be handled without an exception with `{variables:getOrDefault(customerNumber, 0) > 0}. A similar expression is possible for strings with${variables:get(customerName) == “test”}` . The user guide describes the full set of available variable expressions.
  • A first version with support for MongoDB persistence has been added. The MongoDB module is available from a separate Git repository at https://github.com/flowable/flowable-mongodb. The MongoDB module is made available in a separate repository, so that it can be released in a different pace than the full Flowable Engine releases. The support of MongoDB already includes most BPMN constructs, but in the coming releases it will be extended to be on par with the relational database support.
  • Upgrade to Spring 5.x for all the integration modules using Spring.
  • Added plan item lifecycle listener to the CMMN engine, to allow for listening to plan item instance state changes.
  • In the Task app support for activating manual plan items and triggering user event listeners has been added.
  • Added support for JUnit 5.
  • Support for using java.time.Duration variables and expressions for Timer durations.
  • Chinese translation has been added for the UI apps.
  • Various small bugfixes and improvements all around.

Upgrade notes

Idm Engine SpringEncoder

The deprecated constructor from SpringEncoder that accepted org.springframework.security.authentication.encoding.PasswordEncoder has been removed

Custom IdGenerator using a Bean in Spring Boot

It is now possible to define the custom IdGenerator for the Flowable Process engine, by creating a bean of type IdGenerator . If no bean is provided the StrongUuidGenerator will be used. If there is a bean qualified with @Process then this one would be used, otherwise a unique global one would be used. If there are more global beans then the default StrongUuidGenerator will be used.

FlowableFunctionDelegate changes

The method functionClass has been removed from the org.flowable.common.engine.api.delegate.FlowableFunctionDelegate interface. This doesn’t change anything with regards to adding custom functions to expressions: returning the right Method in functionMethod() is enough.

The tomcat-flowable zip download is only intended for quick demos as it uses the H2 database.