Skip to main content

Flowable 3.17.x Release Notes

Initial release 3.17.0, December 12, 2024

Introduction

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.

Documentation

The Flowable Open Source project also has extensive documentation available which can be found at https://www.flowable.com/open-source/docs/oss-introduction.

Highlights

Flowable Work

  • Added support for the Intelligent Document Processing (IDP) integration with ABBYY. Content items that are available within Flowable can be sent to ABBYY for processing. This is supported for automated processing, but also a manual task in ABBYY to do the document processing is supported. Note that the ABBYY feature require a specific ABBYY component to be enabled in the license file for which you can reach out to your CSM or Flowable Sales to discuss the contract terms.

  • Added new feature to orchestrate RPA agents of the RPA framework with Flowable. An RPA task can be added to your process model and input and output parameters can be defined. For the agent the following external worker Python client is needed to execute the RPA logic RPA Python client.

  • Added a new incident reporting feature that shows the following incidents that can happen when running Flowable Work, saturation of the database connection pool and the task executor queue. Also slow jobs, slow service executions and large ElasticSearch index requests are logged as an incident. The thresholds for when an incident is created can be configured using application properties. It's recommended to check the incident reporting on regular basis to check for any issues with the application.

  • Improved the indexing to Elasticsearch for bigger hierarchies with a lot of performance improvements. Before this change, a big hierarchy of a root case instance with several layers of process instances and tasks, could lead to a big Elasticsearch update of more than 10k entities. A lot of the logic is now loaded one time in memory to prevent 1-N queries from being performed, which improves to performance of the indexing dramatically. In addition, to prevent too big JSON document updates to be sent to Elasticsearch, the indexing is done in batches.

  • Added support to return the total amount of items in the data object search API. For database data objects an additional query is done to return the total amount of items. For REST data objects it's now possible to map a value from the search result in the REST response as the total amount value. This enables to allow for paging support with the data object REST API to be used in data tables for example.

  • The human task name, description, form key and category values are now updated for existing task instances when performing a case migration.

  • Improved the case migration to automatically terminate plan items that are not existing in the new case definition version, to simplify defining a case migration.

  • Improved the audit trail UI to allow for sorting and filtering on specific type and sub type values, and also show the payload for a specific item.

  • Improved the housekeeping logic to improve the queries that are performed to be more efficient and don't include for example sorting.

  • Added a new slider form field component that allows to show a number value on a scale.

  • Added support for a select and data table form field type that simplifies the usage of a service model request and response with these form field types.

  • Added support to copy and paste images into a rich text field in a form.

  • Added support to get master data instances from the default tenant.

  • Improved version handling with a data object instance, to ensure that newly deployed data object definition versions don't impact existing data object instances.

  • Improved support to provide translations for an app and page name.

  • Improved mail channel handling, Flowable now uses its own polling mechanism and processes one message at a time. The polling interval is used after no more messages have been received. IDLE support and max message per poll are no longer used.

  • Added support to export data for data object data tables.

  • Improved support for sorting and filtering columns in a data object data table.

  • Ensure that a search field for a data table doesn't trigger a refresh of the data while typing. A debounce period of 1 second is used for the triggering.

  • The case and process instance search API returns now also the assignee value.

  • Added support to skip a receive task, including the event registry tasks, based on a conditional expression.

  • Added support to put variable values in an asynchronous way on a case or process instance. In cases where variable updates can happen in parallel, this makes sure that variable updates will get performed in sequence.

  • Improved the user interaction for deleting an item in a multi sub form component.

  • The license export uses a md5 hash for the user id information now, to be able to match users better across different Flowable instances.

  • Updated the supported databases with the latest versions of Oracle, Microsoft SQL Server etc.

  • Removed the dependency on Liquibase for managing the Flowable Work database schema. Instead, a manual sql approach is used that was already used for the BPMN engine since the start of the Flowable project. This has no direct impact for the usage and installation of Flowable Work.

Flowable Engage

  • Support has been added for the WhatsApp Cloud API which will supersede the Meta Docker image approach provided by Meta. Support for both options is still there to make it easy to migrate to the WhatsApp Cloud API when planned.

  • Fixed issue with not being able to add a participant to an archived conversation.

  • Fixed issue with the message input field losing focus when the websocket connection is temporarily dropped.

  • Removed the dependency on Liquibase for managing the Flowable Engage database schema. Instead, a manual sql approach is used that was already used for the BPMN engine since the start of the Flowable project. This has no direct impact for the usage and installation of Flowable Engage.

Flowable Design

  • Added a new form custom component feature to improve the support for developing additional form functionality. There is a new CLI tool, https://www.npmjs.com/package/flowable-cli, that guides the development of custom form components and allows to see the updated to the component while developing, directly in Flowable Design. For this a new developer role is added to Flowable Design. When having a developer role, the connection between the CLI tool and Design can be made, and then updates from local code changes are pushed to Design. When development is completed the custom components can be installed and then deployed to Flowable Work as part of the app deployment. This then makes the custom components available in the forms where they are used. This enables the development of custom components without needing to work with custom Design and Work builds. Note that it's currently not supported yet to use third-party dependencies in the custom component, but this will soon be added to the CLI tool.

  • Added a new workspace level model view, to make it easy to search for models across different apps in the same workspace.

  • Added support for a 4-eyes check for human tasks in case models and user tasks in process models to restrict the users that are allowed to complete a task. A task can be configured to not allow a user that completed another task to also complete this task.

  • Added support for changing a model key.

  • Added support for searching attribute values in a case, process and form models.

  • Added support for model diffing and version history for all model types, continuing from the already supported model types like CMMN, BPMN and Form models.

  • Added support for copy and paste multiple elements in the case, process and form model editors.

  • Added support to move apps to a different workspace.

  • Improved the visual feedback to show in the model list when a model is not directly linked in the app, but only included because it's a child model of another model in the app.

  • Added support for defining database data object queries with is null and is not null operators.

  • Added support to link a template model that defines the body for a service model operation request.

  • Added support for sorting data types and fields in the data dictionary editor.

  • Added support to search for a specific revision.

  • Added support in the app export to add the information if a model comes from the shared workspace. On import this is then also considered, if there is a shared workspace for the workspace you import the app in.

  • Added the model hierarchy in the app overview to quickly navigate to models in the app and get a quick hierarchical overview of the models in the app.

  • Added a locked models list in the app overview.

  • Improved user information displaying in the app overview to make sure that display the full user name.

  • Added support to use DMN output variables in the variable assistant in the editors.

  • Added support to use a button type to fill a column of a data table. For example, an action button can be configured to be shown in a column.

  • Added support for internationalization values for content model names that are displayed on content type selection in Flowable Work.

  • Added support to realign a connector between two stages in the case editor.

  • Added support to connect a sequence flow from a boundary event to the same activity element as to which the boundary event is attached to.

  • Fixed issue with inconsistent deployment names when using app revisions, when compared to regular app deployments.

  • Added support to configure a synchronous send event task to send the event in the same transaction. The default is that this happens asynchronous.

  • The generation of element ids in the case, process and form editors is based on the id defined in the palette. This means that for a receive task the element id is set to ReceiveTask_1 as an example. This supports better custom elements in a custom palette, to distinguish the element id values.

  • Removed the dependency on Liquibase for managing the Flowable Design database schema. Instead, a manual sql approach is used that was already used for the BPMN engine since the start of the Flowable project. This has no direct impact for the usage and installation of Flowable Design.

Flowable AI Connector

  • In this version new AI features have been added in Work. Note that the AI features require a specific AI component to be enabled in the license file for which you can reach out to your CSM or Flowable Sales to discuss the contract terms. For content items several AI options have been added like allowing to summarize a document. It's also possible to ask questions about the content of a document in a conversation style. In addition, it's possible to translate a document and to get a sentiment analysis about the content of a document.

  • A new generative AI assisted modeling feature has been added in Design, that allows a modeler to create an application including case, process, data dictionary and form models by providing a prompt. It's also possible to generate single models within an app and revise the models as needed with additional prompts. Note that a key to an AI service like OpenAI or Claude needs to be provided.

  • The following AI feature that is added is to allow to include an AI service call within a case or process model. By adding a service registry task with a service model, the type AI can be selected and the service call can be configured with a dynamic prompt, using the case and process variables in the prompt where required. In addition the service call can be made strict in regards to the input and output definition. The output definition will be used to provide to the AI service call to define the output format you want the result to be provided. This also allows for the service model to be used from a form with a service button, and to include direct AI interaction in your form models.

Flowable Control

  • Improved case and process instance migration UI to make it easier to define migration mappings.

  • Fixed issue with using date range queries in several entity lists.

  • Removed the dependency on Liquibase for managing the Flowable Control database schema. Instead, a manual sql approach is used that was already used for the BPMN engine since the start of the Flowable project. This has no direct impact for the usage and installation of Flowable Control.

Flowable Inspect

  • Fixed issue with showing child nodes of a plan fragment.

  • Improved visual appearance for showing lanes in a pools and lane process model.

  • Removed the dependency on Liquibase for managing the Flowable Inspect database schema. Instead, a manual sql approach is used that was already used for the BPMN engine since the start of the Flowable project. This has no direct impact for the usage and installation of Flowable Inspect.

Upgrade information

Work Upgrade information

  • ServiceInvocationResultResponse: The return result of com.flowable.serviceregistry.api.runtime.ServiceInvocationBuilder#invoke(), which is an instance of com.flowable.serviceregistry.api.runtime.ServiceInvocationResultResponse has changed slightly. Before, an untyped Object was returned when calling getResult(). This has been changed to getProcessedResult() that returns an instance of com.flowable.serviceregistry.api.runtime.ServiceInvocationResult. The method getResponseLookupId() has been removed from the interface, as it only returned a value in specific data object usage use cases.

  • Additionally, the ServiceInvocationResultResponse now contains a new getTotalCount() method for the search operations that support it. The reason for these changes is to unify the way service invocations are done across various implementations (REST, database, scripts, etc.). The untyped Object result led to much type-checking against often internal API's which are not guaranteed to remain the same in future releases. Now, all results can be consistently used with a stable API.

  • In the same context, the com.flowable.serviceregistry.api.interceptor.ServiceInvokerInterceptor interface has not been changed, but as the com.flowable.serviceregistry.api.interceptor.ServiceInvocationResult passes an instance of the ServiceInvocationResultResponse, it is mentioned here. Note that previously, the result of the response could be checked against e.g. RestServiceInvocationResponse to retrieve REST-service specific data. These interfaces have been removed. Custom interceptor logic should be rewritten by getting the equivalent data out of the getMetadata() map.

  • The work object REST API has been removed (because it was only there for legacy reasons). This means that the SecurityConstants.ACCESS_WORKOBJECT_API property also has been removed, so if this is used in your security configuration then this part can safely be removed.

Design Upgrade information

  • The workspace with the key default is no longer the default shared workspace. If you want to keep using the workspace with the key default as the default shared workspace then set the property flowable.design.default-shared-workspace-key to default.

Spring Boot

  • Flowable has been upgraded to Spring Boot 3.3.6.

React

  • The React version should be upgraded to the latest 18 version.

Pentest report

  • A new pentest has been performed on Flowable Work and Flowable Design and the results are available via your Flowable account manager or contact person.

Work and Engage Database changes

  • Added new custom component definition table to store the deployed custom component info: FLW_FO_CUSTOM_COMPONENT_DEF.

  • Added new column COMPLETED_BY_ to the ACT_RU_ACTINST table to store the user that completed the task.

  • Added new columns ASSIGNEE_ and COMPLETED_BY_ to the ACT_CMMN_RU_PLAN_ITEM_INST table to store the user that is assigned to and that completed the task.

  • Added new columns ASSIGNEE_ and COMPLETED_BY_ to the ACT_CMMN_HI_PLAN_ITEM_INST table to store the user that is assigned to and that completed the task.

  • Added new index on column PROC_INST_ID_ of table ACT_RU_EVENT_SUBSCR with name ACT_IDX_EVENT_SUBSCR_PROC_ID.

  • Added new index on columns KEY_, VERSION_ and TENANT_ID_ of table FLW_FO_CUSTOM_COMPONENT_DEF with name FLW_IDX_CUST_COMP_DEF_UNIQ.

Design Database changes

  • Created new table FLW_DE_MODEL_GENERATION to store information about the AI model generation.

  • Created new table FLW_DE_MODEL_GENERATION_PART to store the detailed information about every part of an AI model generation.

  • Created new table FLW_DE_CUSTOM_COMP_PROJECT to store information for custom component projects.

  • Created new table FLW_DE_CUSTOM_COMPONENT to store information about the custom components of a custom component project.

  • Created new table FLW_DE_CUSTOM_COMP_MODEL_REL to store the model relations where the custom components are used.

  • Created new table FLW_DE_CUSTOM_COMPONENT_RES to store the custom components resources like javascript and css file content.

Control Database changes

  • No database changes.

Dropping Liquibase Database changes

As part of dropping Liquibase for database management, all Liquibase changelog tables are dropped and some new property tables are added to store the schema version values.

  • Dropped the following changelog database tables for Flowable Work and Engage:

    • ACT_CMMN_DATABASECHANGELOG

    • ACT_CMMN_DATABASECHANGELOGLOCK

    • ACT_DMN_DATABASECHANGELOG

    • ACT_DMN_DATABASECHANGELOGLOCK

    • FLW_EV_DATABASECHANGELOG

    • FLW_EV_DATABASECHANGELOGLOCK

    • FLW_ID_DATABASECHANGELOG

    • FLW_ID_DATABASECHANGELOGLOCK

    • FLW_LIC_DATABASECHANGELOG

    • FLW_LIC_DATABASECHANGELOGLOCK

    • FLW_PL_DATABASECHANGELOG

    • FLW_PL_DATABASECHANGELOGLOCK

    • ACT_APP_DATABASECHANGELOG

    • ACT_APP_DATABASECHANGELOGLOCK

    • FLW_FO_DATABASECHANGELOG

    • FLW_FO_DATABASECHANGELOGLOCK

    • FLW_CO_DATABASECHANGELOG

    • FLW_CO_DATABASECHANGELOGLOCK

    • FLW_AD_DATABASECHANGELOG

    • FLW_AD_DATABASECHANGELOGLOCK

    • FLW_AU_DATABASECHANGELOG

    • FLW_AU_DATABASECHANGELOGLOCK

    • FLW_DO_DATABASECHANGELOG

    • FLW_DO_DATABASECHANGELOGLOCK

    • FLW_PO_DATABASECHANGELOG

    • FLW_PO_DATABASECHANGELOGLOCK

    • FLW_TP_DATABASECHANGELOG

    • FLW_TP_DATABASECHANGELOGLOCK

    • FLW_ENG_DATABASECHANGELOG

    • FLW_ENG_DATABASECHANGELOGLOCK

  • Added new property table to store the license schema version: FLW_LIC_PROPERTY.

  • Dropped the following changelog database tables for Flowable Design:

    • ACT_DE_DATABASECHANGELOG

    • ACT_DE_DATABASECHANGELOGLOCK

    • FLW_PAL_DATABASECHANGELOG

    • FLW_PAL_DATABASECHANGELOGLOCK

  • Added new property table to store the Design schema version: FLW_DE_PROPERTY.

  • Dropped the following changelog database tables for Flowable Control:

    • FLW_CTRL_DATABASECHANGELOG

    • FLW_CTRL_DATABASECHANGELOGLOCK

  • Added new property table to store the Control schema version: FLW_CTRL_PROPERTY.

  • Dropped the following changelog database tables for Flowable Inspect:

    • FLW_ISP_DATABASECHANGELOG

    • FLW_ISP_DATABASECHANGELOGLOCK

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.17.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: 7.2.0.10

Service Packs