License
The Flowable project is distributed under Apache license V2.
Documentation
Links
Flowable Release Notes
Release Notes - Flowable - 6.1.1
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.
Release Notes - Flowable - 6.1.0
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 Engine SQL update logic has been improved to only update changed columns.
- 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.
Release Notes - Flowable - 6.0.1
Highlights
- First bug fix release for Flowable 6!
- Improved LDAP support for the UI apps
- The i18n in the UI apps is now pluggable and there are some first additional languages included
- Improved event sub process support with nested event sub process support for non interrupting ones
- More hit policy support in the DMN Engine. The Decision Table editor will be updated in the Flowable 6.1.0 release.
The DMN Engine API has been refactored to take into account single and multiple output result objects.
- Various small bugfixes all around.
Release Notes - Flowable - 6.0.0
Highlights
- First official release of Flowable 6!
- Documentation has been updated to Flowable 6 and a DMN and Form Engine user guide have been added.
- Various small bugfixes all around.
Release Notes - Flowable - 6.0.0.RC1
Highlights
- Package renaming to org.flowable, and renaming of config files to flowable.cfg.xml and flowable-context.xml.
It was not an easy decision to go this route, but for the clear distinction and separation of the Flowable project this is the best way forward.
The discussion for this choice can be found in this forum post http://forum.flowable.org/t/opinions-on-package-renaming-for-flowable-6-to-org-flowable/118/13
- Class name renaming to use Flowable instead of Activiti where needed.
- The identity functionality is separated in the IDM engine, and the identity database tables are managed by this engine.
By default the IDM engine is enabled when starting the Flowable engine, but it can be disabled with the disableIdmEngine property.
- Introduction of a content engine, which provides a simple file store for attaching files/documents to a task or process instance.
- Support for non interrupting event sub processes. Until this version only interrupting event sub processes were supported,
but now it's possible to handle events and let the main process execution continue as well.
- The task app has been refactored into 3 separate web applications. There's a Flowable Modeler app that contains the modeling repository functionality + the BPMN, form and DMN editor.
The second app is the Flowable IDM app that manages the users and groups and handles authentication for each app.
For example the Flowable Modeler will redirect to the Flowable IDM app when no valid cookie is found.
After logging in to the Flowable IDM app, a redirect to the Flowable Modeler is executed and you can access the Modeler repository.
This is done to allow for single sign-on between the different apps. The third app is the Flowable task app, that allows you to start process instances and work with tasks and fill-in forms.
- Introduction of the Flowable Admin application that allows for querying the BPM, DMN, Form and Content engines.
- Introduction of Docker images to make it easy to start all apps in a convenient way. In the docker folder several docker start scripts can be found that use a Docker compose file.
In an upcoming blog post we will share more information on how this can be used.
- Persistency logic that was written in Hibernate has all been rewritten to MyBatis to have a common framework for all persistency logic.
- Various and many small bugfixes all around.
Release remarks
- This a major milestone to get to the final Flowable 6.0.0 release. All parts of the release are now considered feature complete, so the remaining work will be bug fixing and smaller features.
- We will continue to improve the docs for the 6.0.0 release.
- At this point all community testing is extremely important for the quality of the 6.0.0 release. So every contribution is this area is very welcome.