Initial release 3.14.0, July 27, 2023
The Flowable product comprises:
- Flowable Work, a process and case management platform with an out-of-the-box user interface.
- Flowable Engage, built on top of Flowable Work, adding conversations and external connectivity to WeChat, Whatsapp and others.
- Flowable Design, a modeling environment to create BPMN, CMMN, DMN, Form and other model types that run in Platform/Work/Engage.
- Flowable Control, an administration tool that can be used to manage the Flowable Platform / Work / Engage environments.
- Flowable Inspect, a debugging and test component that can be used with Flowable Work and Engage.
These products are built on top of the Flowable Open Source project which can be found at Github.
The Flowable Open Source project also has extensive documentation available which can be found at https://www.flowable.com/open-source/docs/oss-introduction.
Added a data dictionary model and data contract definition in a case or process model to allow for defining the structure and constraints for the case or process variables. When a variable is created that is listed in the data contract of a case or process model and defined in a data dictionary model, it will be validated against the structure and constraints as defined in the data dictionary model. This improves the data quality of the variables in a case and process instance and also allows for the variable assistant in Design to provide more guidance when creating conditions or variable bindings in a model.
Added support to define an allowed or blocked output mapping for start, human tasks and case page task forms in a case model and start and user task forms in a process model. This allows for restricting which part of the submitted form payload will be processed for creating case or process variables. It also enables the option to use read only variables in the form payload.
Added support for app level variables, which can be used in an expression with the app. prefix. This allows for defining app level constant values or expression resolvement with Spring beans, that can be used in case, process and other model types for condition expressions etc.
By default large variables won't get indexed to Elasticsearch to prevent overloading Elasticsearch with data which is not used for data retrieval through Elasticsearch. A large variable means a big JSON or other big variable types, technically it means any variable that has a byte array reference and value. This can be fully disabled with the following property flowable.indexing.filter.ignore-large-variables=false. It's also possible to define a list of variables which should be indexed with the following property flowable.indexing.filter.always-include-variables.
Added support to define participant groups to be used for the user selection in the people tab in a case, process or task instance level. A list of groups can be defined application wide using the following property flowable.platform.participant-candidate-groups. In addition, the participant groups can also be defined a part of the case and process models.
By default the activities, plan items and content items Elasticsearch indices are disabled, and the work, case instance, process instance and tasks indices are enabled. If you want to activate other indices as well you can do this with the following property flowable.indexing.enabled-indices. Note that all indices that need to be enabled need to be added here, so also the indices that are enabled by default.
Added support for including/excluding a defined set of variables in a case or process model from indexing to Elasticsearch.
Added support for an OR operator in the data object database queries. It's now possible to define and / or groups to implement more complex data object database queries.
Improved support for error handling for service registry tasks, allowing to use error events in BPMN to model any functional error handling.
Added support for storing error payload in a map when throwing a BPMN error, which can be accessed when handling the BPMN error in for example an error boundary event.
Added a REST based inbound channel, or webhook, to the event registry inbound channel options. This enables for sending events over REST to Flowable Work.
Added support for nested objects in a LINQ template when using mapValue and value methods in a LINQ expression.
Improved the export functionality for a data table to include any FE logic that has been applied.
Improved support for process instance migration with multi instance constructs.
Added support for an app order to be shown in the left menu in the Work UI based on a number value. This can be configured on the app model in Flowable Design.
Added support for a service registry button in the form engine and editor to make it easy to invoke a service operation in an easy way.
Added support to query parameters for providing a navigation to a case, process and task instance view in the Work UI. This is to provide better support for environments that have SSO integration that don't support urls with a # in it in a good way. For example a url like #/work/assignee/case/CAS-123 can be rewritten as ?app=work&filter=assignee&type=case&id=CAS-123.
Added support for a default user definition with using OAuth2 for authentication.
For POST and PUT calls it's now possible to define headers in the REST request for a REST button in the form engine.
For an admin user the custom case view header is now shown in the same way as for a regular user.
Improved the logging for Elasticsearch re-indexing, to make it clearer when a reindex is completed.
Added a create instance button to the form engine to be able to start a case or process instance in a form and handling the input mapping to the optional start form, and the output mapping from the created case or process instance response.
Added an email form field to the form engine to make it easier to work with email address input fields.
Added support for using other form field types like an action button or an editable text field in an expandable panel of a data table.
Added support to reorder elements in a multi sub form in the form engine.
Added support for numeric key fields for master data.
Added support for limiting the amount of repetitions / loops can be done in a Process / Case. The property for configuring this is flowable.sandbox.max-allowed-repetitions. This is applied in all places where loops can occur:
- Process loop (in memory or with wait states in between)
- Multi instance
- Non-interruptible boundary events
- Case loop (in memory or with wait states in between) (e.g. modelling repeatable unlimited task)
- Case plan item transitions (e.g. available -> unavailable -> available)
Upgraded the UI to React 18.
Added logic that purges inactive ActiveMQ destinations to clean up not needed topics.
Upgraded the UI to React 18.
Added a new React based Flowable Design application, which will be the only Design application on which new development will be done. It has the following new features compared to the existing Angular Flowable Design application:
Redesigned and new implementation of Flowable Design using React to have consistency in the used UI technology for Flowable applications, and to move away from the out of date and unsupported AngularJS and JQuery versions used in the Angular Flowable Design application.
One export format which can be used to exchange applications between different Design applications, as well as deploying on Flowable Work.
New workspace concept that supports having a grouping of applications that meets your organization requirements. Each tenant can have multiple workspaces, and per workspace you can have multiple apps. A workspace can be configured to be public, this means available to all authenticated users of a tenant, or private and then only users that are part of the configured list of groups have access to the workspace. In addition, a workspace can also be readonly for certain groups of users.
New data dictionary feature that allows you to define the structure and constraints for the variable data that is used within an app, like case or process data, or form data.
Added support for creating revisions of an app, which creates a full copy of all models included in the app at the moment of creating the revision. At any point a revision can then be used to download, or revert to that version, or create a copy in another workspace. This would for example support the possibility to work on the same app in two different workspaces at the same time. This can support a requirement where a production fix is needed on an app and at the same time the app is in development for a new version.
Added support for defining app variables on an app model.
Added support to define the app order based on a number value.
Support multiple Flowable Work instances as deployment option to publish an app from Flowable Design.
Added support for an or operator in the data object database queries. It's now possible to define and / or groups to implement more complex data object database queries.
Added support to download a case or process model as an image.
Added support for a prefix and a suffix for decimal and number fields. This can be used to set a EUR, CHF or $ prefix or a % suffix for example.
Added support for defining query parameters for service registry operations.
Added support for defining a set of variables to be excluded or included from indexing to Elasticsearch. This can be configured in the properties on the case or process root level.
Added an email form field to the form editor to make it easier to work with email address input fields.
Added an hierarchy view for case and process definitions to show which child definitions, like a form or action definition, are used from that definition. You can navigate to any child definition to quickly view the details.
Added an hierarchy view for case, process and task instances to show which child instances, like a form or sub process instance, are used from that instance. You can navigate to any child instance to quickly view the details.
The migrate button is now disabled for completed instances.
Improve support for navigating from a case instance to a sub process instance.
Improve support for multi tenant environments, and make sure that test cases are visible only within the same tenant.
Like mentioned in the Flowable Design section, 3.14.0 comes with a brand new React based Flowable Design application in addition to the already existing Angular based Flowable Design application. The new React based Flowable Design application will be the only Design application that is going to be released as part of next major product version which is targeted for December 2023. All new development will be done on this new Design application only, for example the data dictionary feature is only available as part of the new Design application. The Angular based Design application is included in 3.14.0 to make the transition to the new Design application easier and to prevent any issues in the new Design application blocking any project timeline requirements. In case you have an existing Design database, then the new React Design application can be configured against this database, and it will be upgraded automatically on restart. We advise to make a backup of the existing Design database. An app from the Angular Design application can be exported to and imported in the new React Design application. It's also supported to export an app from the new React Design application and import it in the Angular Design application.
The Angular Design application is using a new Docker image name flowable-design-angular. The existing Docker image name is now referring to the new React Design application.
To be able to support 2 Design applications with 3.14.0, the existing Angular based Design application uses a new group id com.flowable.design.angular and all dependencies you are using in your projects need to be updated to use this group id if you plan to keep using the Angular based Design application. In addition to the group id the artifact ids for the flowable-platform-palette and flowable-engage-palette use new artifact ids flowable-platform-palette-angular and flowable-engage-palette-angular respectively.
See the New Design Migration Guide for all details on how to migrate to the New Design application.
Version 3.14.x will be the last release of the Flowable products using Spring Boot 2.x. In the next major product version, which is targeted for December 2023, the Flowable products will be updated to Spring Boot 3.x. This means that the minimum Java version will be 17 and Java 8 or 11 won't be supported anymore. This is a requirement that is forced by the Spring Boot framework for version 3.x.
As noted in the release items for Flowable Work, by default large variables are not synced to Elasticsearch anymore. When this is unwanted this can be completely disabled with the following property flowable.indexing.filter.ignore-large-variables=false. It's also possible to define a list of variable names that should still be synced to Elasticsearch with flowable.indexing.filter.always-include-variables. In addition it's possible to define allowed / blocked variable names that should be indexed to Elasticsearch on a case or process model level.
As noted in the release items for Flowable Work, by default the activities, plan items and content items Elasticsearch indices are disabled. If you want to activate other indices as well you can do this with the following property flowable.indexing.enabled-indices. Note that all indices that need to be enabled need to be added here, so also the indices that are enabled by default.
For projects using a custom UI using Flowable components we recommend to upgrade the project to React 18.
The low level RestServiceInvokerEnhancer from the Service Registry has been updated to work with the Flowable HTTP Client API. This means that you'll need to adapt your custom implementation accordingly.
The default HTTP client implementation has been changed to Spring WebClient or Apache HTTP Client 5, depending which one is on your classpath. If you want to keep using the old implementation you need to set the property flowable.http.client-type to apacheHttpClient4. If you are using the out-of-the-box provided WARs or Docker images by Flowable then the Apache HTTP Client 5 is the one that is used.
- Base Spring Boot version should be upgraded to at least 2.7.13.
- The React version should be upgraded to the latest 18 version.
- A new pentest has been performed on Flowable Work and the results are available via your Flowable account manager or contact person.
Work and Engage Database changes
Added a new table FLW_DATA_DICTIONARY_DEFINITION to store the data dictionary definitions.
Added a new table FLW_ID_DESIGN_AUTHENTICATION to store access token information to access Flowable Design from Flowable Work.
Added a new table ACT_APP_VARIABLE to store application variable data.
Added a new table ACT_APP_INCIDENT to store incident data that helps to get more insight on the execution of the Flowable Work application.
Added a new column META_INFO_ to the ACT_RU_VARIABLE and ACT_HI_VARINST tables to store additional meta information on variables like data dictionary variable types.
Design Database changes
Added a new column CATEGORY_ to the FLW_PALETTE_DEFINITION table to store the category value of a palette definition.
Added ID_, REV_, NAME_, DESCRIPTION_, CREATED_AT_ columns to the FLW_DE_TENANT table to store more tenant information.
Added a new table FLW_DE_WORKSPACE to store the workspace information.
Dropped table ACT_DE_MODEL_METADATA because it was not used anymore.
Added a new table FLW_DE_IDENTITY_LINK to store permission information on entities like workspaces, apps and models.
Added a new table FLW_DE_PRIVILEGE_MAPPING to store user privilege information.
Added a new column visibility_ to the ACT_DE_MODEL table to store the visibility information and set it to public by default.
Renamed tenant_id_ column to workspace_id_ for the ACT_DE_MODEL, ACT_DE_MODEL_HISTORY and ACT_DE_MODEL_RELATION tables to make the change from the tenant to workspace concept.
Added palette_def_category_ and palette_def_key_ to the ACT_DE_MODEL and ACT_DE_MODEL_HISTORY tables to store the reference to the paletted definition key and category.
Added a new column template_ to the ACT_DE_MODEL table to store if the model is a template.
Added a new table FLW_DE_APP_REVISION to store the app revisions.
Added a new table FLW_DE_IDENTITY_INFO to store identity info for a user.
Added a new column model_sub_type to the ACT_DE_MODEL and ACT_DE_MODEL_HISTORY tables to store a sub type for a model.
Added a new table FLW_DE_ACCESS_TOKEN to store information about access tokens that a user can create.
Control Database changes
- Added new table FLW_CTRL_AUTH_CLUSTER_MAPPING to store authority information for a cluster.
- Support for asynchronous relational history will be removed in the next major version. Since version 3.8.0 the default relational history handling was changed to the alternative synchronous handling and the asynchronous behaviour had to be enabled specifically through the flowable.async-history.enable-async-relational-history=true property. Running with synchronous relational history means that the historic information for a case instance, process instance or task will be added to the relational database tables in the same transaction as the runtime data. The update of the Elasticsearch data is in both setups done with an asynchronous job, but the logic is less complex in the synchronous counterpart, which has proven to be a superior choice under high-load scenarios.
Open Source Artifacts Dependency Compatibility
Releases of Flowable Design, Work and Engage use versions of the open source Flowable dependencies that have not yet been published publicly on the Maven Central repository. These 'bugfix releases' can be retrieved by customers using the customer Flowable Maven repository credentials.
These versions contain fixes and have been QA'ed with the 3.14.0 release.
It's advised to upgrade your open source dependencies to the 'compatible' version mentioned below (and mentioned in the subsequent
Service Packs section)
Open source dependency version: 22.214.171.124
- Fixed issue with audit trail view not showing the sub type and showing the user id for user typed events.
- Added option in React Design to include an existing model from another app in the same workspace as the current app.
- Added view in React Design that shows the variables available in the current model and where the read and write references are done.
- Added view that shows uses and used by information for the current model in React Design.
- Added option to upload a license file to React Design.
- Added more cases of automatic key generation based on a name or label value for convenience in React Design.
- Added update information when a data object has changed in the service model editor and when a service model changed in the CMMN and BPMN editors.
- Fixed issue with React Design service model editor exporting empty objects and values for not filled-in properties.
- Fixed issue with React Design channel editor exporting empty objects and values for not filled-in properties.
- Fixed issue with service button in the form engine not taking into account input / output parameters.
- Added FE expression to get master data instance info by key with getMasterDataInstanceByKey.
- Added new interface CoreRestDataInterceptor to provide a hook point for adding a custom variable filter when getting variables for a form, saving or completing a form or when starting a new case or process instance.
- Fixed issue with terminate button not working for case instances in Flowable Control.
- Fixed issue with date from and to fields not working when searching for case instances in Flowable Control.
- Fixed issue with app variables not being shown in Flowable Control in the app details view.
- Upgraded to Spring Boot 2.7.14.
Open source dependency version: 126.96.36.199
- Fixed issue with multiple start events in a process model with an event registry start event being used as the start event when manually starting a new process instance.
- Fixed issue with event listener being triggered when it is in an unavailable state.
- Added option to map plan item ids between different case model versions for case migration. This is generally is not needed, but when migrating case models created with Flowable Design before 3.8 this could be useful.
- Fixed issue with getting content items in an action start form payload due to rendition and meta data values not being initialised.
- Use regular HTTP requests via Axios, for download urls of a form attachment component instead of using a static url with a token parameter.
- Fixed issue with importing a collapsed sub process in React Design.
- Upgraded to Spring Boot 2.7.15.
Open source dependency version: 188.8.131.52