Introduction
The Flowable product consists of the following components:
- Flowable Platform, a headless process and case management platform.
- 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.
These products are built on top of the Flowable open source project which can be found on Github https://github.com/flowable/flowable-engine.
Documentation
The Flowable open source project also has an extensive documentation available which can be found on https://flowable.org/documentation.html.
Release Notes - Flowable - 3.2.0 (June 7, 2019)
Highlights
Flowable Platform
- Added a policy engine component that can be used to define policies Platform wide. For this release it is used for security policies that can be used to define
permissions for cases, processes and tasks, but more policy types can be added in the future.
- Added a service registry engine to make it possible to extract the logic to invoke an external service from the case and process models and define and manage it separately.
The focus is on enabling the invocation of REST services, but this is open to be used for Java logic and other external service logic as well.
- The Elasticsearch indexing has been enhanced to support scoped variables by default and adds the parent and root definition id, name and key automatically to the process, case, work and task indexes.
It is now supported to extend the default indexes with additional custom properties. There is also built-in support to define Elasticsearch aliases and to define predefined queries that can be used in dashboard forms for example.
The custom indexing, alias and query functionality is built directly on top of the Elasticsearch definitions. For example, the mapping file now is a one-to-one Elasticsearch mapping file and there is no longer an intermediate language.
The same is true for the alias and query support.
- The data object engine has been enhanced to support the definition of custom data objects that can be used in the process, case and form modeling and is directly available in all expressions. The data object functionality allows a user or developer
to define a data object with a mapping to a database table structure. The database table structure uses Liquibase changelog XML files to manage the data object database tables. Process, case and task variables are linked to the
data object table and can therefore always access the current data and expressions like ${customer.customerName} will resolve to a customer data object and then the customerName property.
- The content engine has been enhanced to support folders. There is a default top level folder created that contains a work folder and Personal folders for every user that accesses the content library.
By default the root level case or process model will create a case or process base folder within the general work folder. For every sub process or task that deals with content, sub folders are created within the parent case or process folder.
Flowable Work
- Added a new document app that allows to browse the content library. By default the top level folder is shown that contains the work folder and a personal folder for the logged-in user.
The folders can be traversed like a regular file browser and files can be previewed with the file details, meta data and versioning information. The document app is implemented with a reusable
React component that can be integrated into another application.
- The content library component is also made available in the process, case and task document tab and replaces the previous thumbnail focused view.
- Added a people tab to the case and process view to add participants.
- Added support to set and change an assignee for a case and process.
Flowable Engage
- Added support for reactions to messages.
- Added support to reply to messages in a conversation.
- Added support to forward a message to another conversation.
Flowable Design
- Added support for creating security policy models that can be used to define permissions for cases, processes and tasks.
- Added support to create data object and Liquibase changelog models to support the definitions of custom data objects that can be used in the other models.
In the form model editor there is support to reference a data object definition and define the scope name for the form field bindings to the data object properties.
- A new service model editor has been added to define service registry definitions for external REST service calls. The service registry definitions can be referenced
from the new service registry task element in the case and process models.
Flowable Control
- Added support for managing document definitions, renditions and metadata for the content engine.
- Added support for managing the template engine, with deployments, template definitions and variation definitions.
- Added support to manage the data object engine with deployments, data object definitions, and Liquibase schema definitions.
For a Liquibase schema definition the database can be rolled back and updated when needed, if changes have been applied to a Liquibase schema definition.
Upgrade information
Actions needed when upgrading
- The Elasticsearch mapping definitions were changed for this release, but a reindex has been made optional. When no reindex is applied, the new mapping properties like
variables and parent and root definition id, name and key, will not be available in the existing documents. If access is required, then a reindex needs to be performed.
Database changes
- The policy engine was added and this includes the new tables FLW_POLICY_DEPLOYMENT, FLW_POLICY_DEPLOYMENT_RESOURCE,
FLW_POLICY_DEFINITION and FLW_POLICY_DEF_LINK.
- The service registry engine was added and this includes the new tables FLW_SE_DEPLOYMENT, FLW_SE_DEPLOYMENT_RESOURCE,
and FLW_SE_DEFINITION.
- The content engine now supports folders and a new column FOLDER_PARENT_ID_ was added to the FLW_CO_CONTENT_ITEM table.
- The audit engine has a new column SUB_SCOPE_ID_ in the FLW_AUDIT_INSTANCE table.
- The data object engine has new support for data object definitions and Liquibase schema definitions and therefore the
FLW_DO_SCHEMA_DEFINITION was added.
- The engage engine has added support for message replies and therefore REPLY_TO_MESSAGE_ID_ was added to the FLW_ENGAGE_MESSAGE
and FLW_ENGAGE_TEMP_MESSAGE tables. Also a new table FLW_ENGAGE_REACTION was added for the reactions feature.
Release Notes - Flowable - 3.1.0 (March 28, 2019)
Highlights
Flowable Platform
- Added a data object engine component that can be used to define master data definitions and import master instance data. The master instance data can be used
to show for example a list of countries in a form.
- Added an app engine to replace the open source app engine. The main reason to use a different implementation for the app engine is to support Flow-Apps and Pages.
The app engine supports the deployment of Pages and manages the relationship between Flow-Apps and Pages.
- The Elasticsearch indexing has been improved to use the bulk indexing feature of Elasticsearch. This reduces the number of HTTP calls that need to be done. Also, the Elasticsearch
reindexing has improved with bulk indexing.
- A hash value has been added to the form variables payload REST response to verify the submitted form data server side. This makes sure that no malicious form data gets submitted to the REST API.
- An experimental feature to support server side validation of form payload has been added. This feature is turned off by default and can be enabled with setting the property
flowable.form-field-validation-enabled to true.
- Upgraded to Spring Boot 2.1.
- Add support for Java 11 in addition to the support of Java 8.
Flowable Work
- Added support for Flow-Apps and Pages to appear in the menu view, and support case / process / task navigation within the Flow-App and Page context.
- Added Task / Case / Process list and chart (pie, line, bar) form field components to the React form engine.
- Improved support for UI customization. In order for hot swapping to work for the custom.js and custom.css. Use the following properties in development mode only.
*do not* use them in production, it will prevent caching of the FE resources and it might lead to reduce performance of the application:
spring.thymeleaf.cache=false
spring.resources.chain.cache=false
- The menu view can be customized and new menu items can be added. In the menu item configuration a form reference can be used
or a custom React page can be created as well.
- The tabs in the case / process / task details view can be customized and tabs can be added and removed from the default set of tabs.
Flowable Engage
- Improved emoji handling to support more text to emoji automatic conversions.
- Improved slash action support for actions that don't have an associated form.
Flowable Design
- Added support for creating Pages. A Page can be used in a Flow-App to show a dashboard view containing case / process / task lists and charts in addition to
the default set of supported form fields (e.g. text fields, number fields, date fields etc).
- Added support for including case / process / task lists and charts in the Form and Page editor.
- Experimental feature to support work models (user, content and action models). In Flowable Work / Engage user, content and action models can be defined
in JSON and deployed to the Engines. With this experimental feature it's now also possible to design a user, content or action model in Flowable Design
using a form that needs to be filled-in. A work model can then be added to an application and deployed to Flowable Work/Engage
Flowable Control
- Added support to query the Elasticsearch indexes that are created by Flowable Work / Engage.
- Added support to trigger reindexing of an Elasticsearch index.
- Decision executions can now be visually displayed using the same decision table view component that was already available in Flowable Work / Engage.
Upgrade information
Actions needed when upgrading
- The Elasticsearch indexes need to be reindexed because of changes in the mapping definitions. This can be done using Flowable Control or with the reindex REST API endpoints
Database changes
- The data object engine was added and this includes the new tables FLW_DATAOBJECT_DEPLOYMENT, FLW_DO_DEPLOYMENT_RESOURCE,
FLW_DATAOBJECT_DEFINITION, FLW_MASTER_DATA_INSTANCE and FLW_DO_VARIABLES.
- The app engine now includes the relationship with the page entities and therefore the following table was added ACT_APP_PAGEDEF and the
ACT_APP_APPDEF table was changed to add type, sub type, state, sub state and app url columns.
Module changes
- The app engine is now part of the com.flowable.core Maven package and not anymore org.flowable.
- The idm engine was moved from the com.flowable.platform to the com.flowable.core Maven package.
Other changes
- The property flowable.indexing.reindex-timeout is replaced by flowable.indexing.reindexing.total-timeout
- The interface of ReactorNettyClientOptionsBuilderCustomizer has been changed - reason is that the Reactor Netty dependency changed and there is no backwards compatible change
- Projects that added the HomeController and FrontendProperties should remove it with the new frontend customization support. The following properties need to be removed as well:
spring.thymeleaf.prefix=classpath:/public/
spring.resources.chain.enabled=true
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/ext/**
- spring.elasticsearch.rest.uris can be used as alternative to flowable.indexing.elasticsearch-addresses
spring.task.execution.pool.core-size can be used as alternative to flowable.async.core-pool-size
spring.task.execution.pool.max-size can be used as alternative to flowable.async.max-pool-size
spring.task.execution.pool.queue-capacity can be used as alternative to flowable.async.queue-capacity
spring.task.execution.thread-name-prefix can be used as alternative to flowable.async.thread-name-prefix
org.springframework.boot.autoconfigure.elasticsearch.rest.RestClientBuilderCustomizer can be used as alternative to com.flowable.autoconfigure.indexing.RestClientBuilderCustomizer
Release Notes - Flowable - 3.0.0 (February 14, 2019)
Highlights
Flowable Platform
- Added an action engine component that can be used to define actions, that can be shown in for example a process instance or case instance view, with action definitions.
An action can be configured with a bot key reference to trigger a specific bot when the action is triggered.
- Added a template engine to allow for templates and template variations to be defined for document templates or confirmation message definitions etc.
- Implemented a platform specific form engine implementing the open source form engine api. The platform form engine adds support for saving a completing forms using the React Form Engine
and adds server-side form validation capabilities.
- Implemented a platform specific content engine implementing the open source content engine api. The platform content engine adds support for document definitions, content metadata and content versioning.
- Using Elasticsearch for query intensive data like task, process and case instance lists. But also to drive analytics as to show to show graphs and data tables.
- Added a security and permissions layer on top of the open source REST API to ensure that process instance, case instances, tasks and all other resource entities can't be accessed without being an admin user or being involved in the process instance, case instance, task etc.
- Added additional REST services to add convenience access for the Flowable Platform specific functionality like using work forms, getting the actions for a process instance for which the logged in user has access etc.
Flowable Work
- Introduction of the Flowable Work UI that is implemented using the React framework.
- Flowable Work uses the Flowable Form Engine, also written in React and designed to be used in third-party applications, to show task and start forms, but also case and process instance work forms etc.
- The case and process diagram viewer provides an overview of the definition and the current state of the instance and / or the completed activities for the instance.
- The menu items (referred to as Flowable apps) are part of a pluggable framework and can be extended with custom apps and custom pages.
- Provides an analytics component that provides out-of-the-box bar, pie and line charts to show information about tasks, case and process instances.
Flowable Engage
- Added a conversation engine to allow for different conversation types (like direct message, group messages, desk channel) and messages to be stored and be queried.
- A conversational user interface to be able to create new conversations and send text and media messages to other participants in the conversation.
- Implemented a WeChat and WhatsApp adapter to be able to communicate with a WeChat or WhatsApp account in a conversation.
- The React Form Engine is embeddable in a conversation to support inline forms.
- Provides slash actions that can be used to trigger actions by typing the action in the message dialog of a conversation.
- The features of the BPM engine like case and process instances, tasks and actions can be used in conversations by triggering actions, or completing inline forms.
Flowable Design
- Provides editors to create BPMN, CMMN, DMN, Form and App models.
- Apps can be published directly to a configurable endpoint where Flowable Platform / Work / Engage is made available.
- Provide form preview capabilities to validate the form model within Flowable Design.
- Allows for importing and exporting models on an app level, but also for a specific model type.
- Models can be versioned to keep track of the changes that are made to a model. Using the model compare feature, the changes can be made visual.
Flowable Control
- Provides access to BPMN, CMMN, DMN, Form, Content, Action and Conversation engines and allows to query on deployments, definitions and instances.
- Can be used to manage multiple clusters of Flowable Platform / Work / Engage servers, by configuring multiple endpoints. This can for example also be used to manage the development, test, QA and product environments.
- Shows the relationships between the different engines on an instance and definition level. For example, a process instance shows the tasks, decision tables, variables and form instances that are referenced by the process instance.
- Provides a graphical view on running and completed case instances, process instances and form instances.
- Exposes a basic UI to change the state for running process instances, and migrate process instances to a new target process definition.