Flows for APEX is an extension for Oracle Application Express (APEX) that lets you model and run processes based on the BPMN 2.0 standard. This blog article will address some of the key features introduced with version 21.1.
Setting process variables before and/or after each step
With the help of process variables, information can be stored persistently in the database over the entire duration of a process instance. You can set a process variable through the PL/SQL API or, with 21.1, do this declarative for each step in the BPMN model. The variables are meant to be set at special trigger points in the model (e.g., after a task has been executed or before the process is split up at a gateway) and read out again at a later point in time without the need of an APEX session.
Restart failed tasks
Sometimes the execution of a step in a process fails, so that the process cannot continue. In this case, the transaction of the current step is rolled back, and the instance is set to an error state. With the help of the previously mentioned auditing capabilities, the error can be located and fixed. To restart the step, either execute the PL/SQL procedure flow_api_pkg.flow_restart_step or press the corresponding button on the Flow Monitor page.
More engine app enhancements
The Flows for APEX engine app is used to manage the BPMN models and process instances. With version 21.1, several enhancements have been made:
- Use of keyboard shortcuts in the modeler (copy, paste, save)
- Support for dark mode
- Layout adjustments to support different screen sizes
- Bulk export/import of models
- Export of a model or an instance as SVG
Process plug-ins for a true low-code experience
Next to the existing region plug-in “Flows for APEX viewer” for displaying BPMN models, 3 process plug-ins were introduced that can be used in your own APEX application to manage a flow instance without the need of custom coding:
- Management of the entire flow instance (start, stop, terminate, reset, delete)
- Management of a single step within the flow instance (start, reserve, release, complete)
- Management of process variables of a flow instance (setting / reading out the variables in conjunction with APEX page items)
The plugins are included in the distribution of the Flows for APEX application and can be easily exported and imported to be used in own applications.
During the execution of a process flow, information is written to a logging table at various points in Flows for APEX. This includes events occurring at instance level as well as task-level together with a timestamp and the calling user. These can be called upon in the engine app via the detail page of a process instance for management and debugging purposes. Furthermore, logging information for a specific step in the instance can be displayed by simply clicking on it in the Flows for APEX Viewer.
Sample app “Expense Claims”
To demonstrate the integration of Flows for APEX in an APEX application, a new demo application comes with the distribution of Flows for APEX 21.1. This application covers a simple expense claim process and helps APEX developers to understand how to develop process-driven applications.