<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[All about Flows for APEX]]></title><description><![CDATA[Richard Allen's blog on **Flows for APEX** and related technologies - including Oracle and Oracle APEX.]]></description><link>https://blog.flowquest.net</link><image><url>https://cdn.hashnode.com/res/hashnode/image/upload/v1732121342057/3d3a2800-c32d-43ab-847d-0250c816358b.png</url><title>All about Flows for APEX</title><link>https://blog.flowquest.net</link></image><generator>RSS for Node</generator><lastBuildDate>Tue, 07 Apr 2026 08:15:04 GMT</lastBuildDate><atom:link href="https://blog.flowquest.net/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Flows for APEX v25.1: Working even Better with APEX Human Tasks]]></title><description><![CDATA[Oracle introduced the APEX Approval Task in APEX 22.1, extended it to non-approval Human Tasks with Action Tasks in APEX 23.2, and has enhanced the overall functionality of APEX Human Tasks in each APEX release. Flows for APEX, the BPMN process model...]]></description><link>https://blog.flowquest.net/flows-for-apex-v251-working-even-better-with-apex-human-tasks</link><guid isPermaLink="true">https://blog.flowquest.net/flows-for-apex-v251-working-even-better-with-apex-human-tasks</guid><category><![CDATA[#FlowsforAPEX ]]></category><category><![CDATA[Flows for APEX]]></category><category><![CDATA[orclapex]]></category><category><![CDATA[Low Code]]></category><category><![CDATA[BPMN]]></category><category><![CDATA[JoelKallmanDay]]></category><dc:creator><![CDATA[Richard Allen]]></dc:creator><pubDate>Wed, 15 Oct 2025 07:00:42 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1759262672913/fc1314ac-18e4-4dfe-8b82-48b6d562cea0.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Oracle introduced the APEX Approval Task in APEX 22.1, extended it to non-approval Human Tasks with Action Tasks in APEX 23.2, and has enhanced the overall functionality of APEX Human Tasks in each APEX release. Flows for APEX, the BPMN process modelling and workflow engine for Oracle APEX, has supported APEX Approval Tasks as a task step in a BPMN-based workflow since 2022, but in the 25.1 release, we’ve refreshed our integration with APEX Human Tasks, fixing some difficulties and adding extra capabilities.</p>
<h2 id="heading-when-would-you-use-apex-human-tasks-in-a-flows-for-apex-workflow">When would you use APEX Human Tasks in a Flows for APEX Workflow?</h2>
<p>Sometimes, your workflow is really simple - you just need a simple approval from a manager, and you don’t need to control your business process from a workflow engine. But there are other cases when you have a more complex business process that includes management approvals, sometimes going up to 4 or 5 levels of management, and sometimes going up multiple management hierarchies in parallel before everyone approves!</p>
<p>APEX Human Tasks as part of a BPMN workflow in Flows for APEX gives you the best of both worlds. You get to use the rapid generation features of APEX tasks, including visually appealing, auto-generated Task List and Task Detail pages while being able to include these in a BPMN-based workflow that allows parallel execution of approval chains modelled with the industry standard BPMN 2.0 that your business analysts and managers already know.</p>
<h2 id="heading-how-are-apex-human-tasks-integrated-into-a-flows-for-apex-workflow">How are APEX Human Tasks integrated into a Flows for APEX workflow?</h2>
<p>At its simplest, a BPMN workflow breaks a business process down into tasks, events, and gateways. Tasks can be performed by a human at a computer (a user task), a script ( a script task), by calling some service (a service task), etc.. Processes either trigger or wait for various Events to occur, such as sending a message, waiting for and receiving a message, detecting a process error, etc. And Gateways control the flow of the process between tasks and events, allowing the process to change direction (an Exclusive Gateway), go in multiple parallel paths (a Parallel Gateway), or conditional parallel paths (an Inclusive Gateway), or react to the first of several events occurring.</p>
<p>The BPMN User Task is used for Human Tasks. In Flows for APEX, a user task can be implemented in your application by calling an APEX page that you have built ( an APEX Page Task), by calling an APEX Human Task (an APEX Approval or Action Task), or using our development-less option using a dynamic Simple Form, where the items to be collected from the user are defined as a simple JSON definition, and the input form is dynamically created by the application at run time without having to define an APEX page.</p>
<p>You can test drive our Expense Claim Demo App that contains all types of user tasks. The Expense Claim Demo App is shipped with the Flows for APEX Community Edition v25.1 software distribution - meaning it can be installed in under a minute.</p>
<h2 id="heading-so-whats-new-in-flows-for-apex-251">So what’s new in Flows for APEX 25.1?</h2>
<p>We’ve added several enhancements to our integration with APEX Human Tasks. Here’s the list of new features, and we’ll then take these one by one to show what they do.</p>
<ul>
<li><p>Task Assignment from the Flows for APEX Workflow.</p>
</li>
<li><p>Business Admin assignment from Flows for APEX.</p>
</li>
<li><p>Better cleanup when tasks are cancelled.</p>
</li>
<li><p>New Task Action plugin to return task state and approval outcomes.</p>
</li>
<li><p>Support for ‘Originator can Approve’.</p>
</li>
<li><p>Visibility of APEX task information from the Flow Monitor.</p>
</li>
<li><p>Removed Group Assignment for APEX Tasks until supported.</p>
</li>
</ul>
<p>In addition, we’ve revised and extended the documentation on how to configure the generated <strong>APEX Task List</strong> to combine tasks from Flows for APEX, APEX Workflow, and APEX Human Tasks. This is the subject of another blog post <a target="_blank" href="https://hashnode.com/preview/66ec436c58d911a565904739">Unifying all Tasks: Integrating Flows for APEX into the APEX Task List</a></p>
<p>Let’s look at these improvements in more detail.</p>
<h2 id="heading-task-assignment-from-the-flows-for-apex-workflow">Task Assignment from the Flows for APEX Workflow.</h2>
<p>If a task forms part of a larger business process, it’s likely that the workflow engine may often have a better understanding of who should be assigned the task. So you want the workflow engine to be able to set the potential owners for a task, and you’d like to be able to determine this assignment in the workflow definition, rather than having a set of rules inside the task.</p>
<p>The APEX Human Task API doesn’t allow us to pass the list of potential owners into a task when it is created, and only the task Business Admin can add or remove potential owners once it has been created. But the task can be defined to evaluate a PL/SQL expression to set potential owners (and business admins), and so we have provided a new Flows for APEX API call that allows you to ask Flows for APEX who the potential owners should be. This call is:</p>
<pre><code class="lang-sql">    flow_api_pkg.get_task_potential_owners ( p_process   in flow_processes.prcs_id%type,
                                             p_subflow   in flow_subflows.sbfl_id%type,
                                             p_step_key  in flow_subflows.sbfl_step_key%type
                                            );
</code></pre>
<p>This will return a list of the task’s potential owners from Flows for APEX, with the comma delimiter required for APEX Tasks.</p>
<p>If you were using APEX approvals with Flows for APEX in earlier versions, we recommended passing <code>PROCESS_ID</code> as a parameter into your APEX task. From 25.1 onwards and to use these new functions and the new plug-in (details below) you should now pass <code>PROCESS_ID</code>, <code>SUBFLOW_ID</code>, and <code>STEP_KEY</code> as parameters into your APEX task. (Sorry - we need all three to be able to unambiguously refer to the task before the APEX Task ID is assigned!)</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1745916455959/590d8caf-9564-409a-89b2-6f3de320039a.png" alt class="image--center mx-auto" /></p>
<p>The task potential owners can de defined as part of the BPMN user task definition, and can be defined as:</p>
<ul>
<li><p>a static value</p>
</li>
<li><p>the contents of a Flows for APEX process variable</p>
</li>
<li><p>a SQL Query returning a single or multiple values</p>
</li>
<li><p>a PL/SQL expression</p>
</li>
<li><p>a PL/SQL function body</p>
</li>
</ul>
<h2 id="heading-business-admin-assignment-from-the-flows-for-apex-workflow">Business Admin Assignment from the Flows for APEX Workflow</h2>
<p>Similar to the above description of how and why to set a task’s Potential Owners from Flows for APEX, we can now also set the Task’s Business Administrator from Flows for APEX, starting in Flows for APEX 25.1. The Business Admin is an important person - as only the Business Admin can add or remove potential owners, and only the Business Admin and the Task Initiator can cancel a task. Having an appropriate Business Admin set from the workflow definition allows intelligent choices of Business Admin based on the context of the task; large organisations might want to have a business admin in the same group as the task assignee, or if the approval is expected to occur quickly, it might be a duty manager or someone not on vacation.</p>
<p>The Business admin can now be defined in the BPMN diagram in the properties panel for a BPMN User Task that calls an APEX Human Task. Like the definition of a potential. owner, the business admin can be defined as a static value, from a process viable, or from a query, expression or function body.</p>
<p>It’s important that a Business Administrator is defined, and that Flows for APEX knows who it is - as we need to know in order to be able to cancel any tasks that need clearing up after a process is deleted, terminated or reset, or if it is cancelled as a result of a BPMN interruption or some other process flow issue. In order to help you ensure that there is always an admin defined, you can now also specify a process-level default business administrator in the bpmn:process definition in your process diagram. And to be extra sure, you can also define a Flows for APEX system-wide business administrator as a configuration parameter <code>default_apex_business_admin</code> in the configuration form on the Flows for APEX Application.</p>
<p>Similar to setting a task potential owner, the task business admin can be set in your APEX Task Definition to callback to Flows for APEX to get. the Business Admins, this time using the API call <code>flows_api_pkg.get_task_business_admins</code>. Note the extra two parameters, giving you the option to include either the diagram-level default admin or the system-wide admin from the configuration parameters. Here’s the syntax:</p>
<pre><code class="lang-sql">flow_api_pkg.get_task_business_admins ( p_process in flow_processes.prcs_id%type,
                                        p_subflow in flow_subflows.sbfl_id%type, 
                                        p_step_key in flow_subflows.sbfl_step_key%type,
                                        p_add_diagram_admin  in boolean default false,
                                        p_add_instance_admin in boolean default false);
</code></pre>
<p>With the Business Admin defined and known to Flows for APEX, we are now able to have our next new feature…</p>
<h2 id="heading-better-cleanup-of-cancelled-tasks">Better Cleanup of Cancelled Tasks</h2>
<p>An APEX Human Task can only be cancelled by its initiator or one of its Business Administrators. So in previous releases, approval tasks were often left behind if the process that created them was deleted, reset or terminated, or if the task was cancelled due to an interruption or its parent sub process being terminated. With Flows for APEX v25.1, we should be able to clean up any of these orphan tasks.</p>
<p>When an APEX Human Task requires cancellation from the workflow, we first attempt to cancel it in the current user session. This only succeeds if the current user initiated the task or is a business admin for the task. If this is not successful, Flows for APEX will now user the database scheduler to run a job in a background process which creates an APEX session as a Business Admin, and cancels the task. If there is not a valid business admin defined, instead it will create an APEX session as the initiator, and cancel the task.</p>
<p>For. those wanting more technical detail, we create a <code>DBMS_SCHEDULER</code> program , named <code>APEX_FLOW_CANCEL_APEX_TASK_P</code> as part of installation or migration to Flows for APEX v25.1, and then run an immediate <code>JOB</code> using that program to do the deletion. The Flows for APEX user requires the <code>CREATE JOB</code> database system privilege in order to create this and to run timers.</p>
<h2 id="heading-new-apex-task-action-plugin-flows-for-apex-return-apex-human-task-state-and-outcome">New APEX Task Action Plugin - ‘Flows for APEX - Return APEX Human Task State and Outcome’</h2>
<p>We’ve had an APEX Task Action Plugin available since Flows for APEX v22.1 that returns the Approval result (‘Flows for APEX - Return to Flows for APEX’) - but in Flows for APEX v25.1 we’ve created a new and enhanced plugin with slightly different interface named ‘Flows for APEX - Return APEX Human Task State and Outcome’.</p>
<p>Firstly, for those of you with applications using the old plugin, don’t worry! The old plugin and its interface still exist are unchanged — but we think that you should change to the new plugin sometime soon, once you have 25.1 installed and running! We’ll keep it in 25.1 and the following release, but likely remove it in a subsequent release.</p>
<p>Using the new plugin, your APEX Human Task should have Task Parameters that include at least the three Flows for APEX state parameters, <code>PROCESS_ID</code>, <code>SUBFLOW_ID</code>, and <code>STEP_KEY</code>.</p>
<p>Like the old plugin, the new plugin can return the Outcome of an APEX Human Task that has an Outcome (that’s currently an Approval Task, which has Outcomes of <code>APPROVED</code> or <code>REJECTED</code>).</p>
<p>In addition, the new plugin also returns the State Code from an APEX Human Task. This allows you to use the plugin to tell its controlling Flows for APEX workflow that the APEX Human Task is <code>COMPLETED</code>, or that it has been <code>CANCELLED</code> or that it has <code>EXPIRED</code>*. Unfortunately, you can’t currently define an action if it has <code>ERRORED</code>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1753093164547/bd437c90-86bf-4ebb-81b6-1ed05373ae26.png" alt class="image--center mx-auto" /></p>
<p>Configuring each of the Task Actions in APEX is simple - we just need to select action type to use the `Flows for APEX - Return APEX Human Task State and Outcome [plug-in]’ and the default values should work for you. The Task Action configuration should look like this:</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1753093368690/20537879-25e7-4219-9f62-e1180b15b46f.png" alt class="image--center mx-auto" /></p>
<p>Note that <code>EXPIRED</code> is only relevant if you have defined an expiration policy in the APEX Human Task definition. Note also that there is an open APEX bug in 24.1 and 24.2 such that the Expiration task action does not correctly report its expired state. Until this is fixed (which we understand should be in 25.1), you can write your own PL/SQL code instead of using the plugin. Just set the Action Type to <code>Execute PL/SQL</code> and use the following pl/SQL code:</p>
<pre><code class="lang-sql"><span class="hljs-keyword">begin</span>
    flow_api_pkg.return_task_state_outcome 
    ( p_process_id =&gt; :PROCESS_ID
    , p_subflow_id =&gt; :SUBFLOW_ID
    , p_step_key   =&gt; :STEP_KEY
    , p_apex_task_id =&gt; :APEX$TASK_ID
    , p_state_code =&gt; <span class="hljs-string">'EXPIRED'</span> <span class="hljs-comment">-- have to hard code this due to APEX bug</span>
    , p_outcome =&gt; <span class="hljs-literal">null</span>
    );
<span class="hljs-keyword">end</span>;
</code></pre>
<p>In Flows for APEX 24.1 and earlier, a task that had been cancelled, errored, or expired meant that you had a stuck Flows for APEX process instance. Now, if you define Task Actions to pass the task state back to Flows. for APEX, the workflow engine can react appropriately as follows.</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>Task State</td><td>Flows for APEX Action</td></tr>
</thead>
<tbody>
<tr>
<td>COMPLETED</td><td>Performs a FLOW_COMPLETE_STEP</td></tr>
<tr>
<td>CANCELLED</td><td>Logs an APEX Task Cancellation. Performs a FLOW_COMPLETE_STEP.</td></tr>
<tr>
<td>EXPIRED</td><td>Logs an APEX Task Expiration. Performs a FLOW_COMPLETE_STEP.</td></tr>
<tr>
<td>ERRORED</td><td>Unfortunately, none. Please support APEX Idea 4438!</td></tr>
</tbody>
</table>
</div><h2 id="heading-support-for-initiator-can-approve">Support for ‘Initiator Can Approve’</h2>
<p>Until APEX v24.1, the <em>separation of duties</em> rule that ‘a task initiator couldn’t approve his own approval request’ was strictly enforced in APEX Approval Tasks. However, Oracle changed this in APEX 24.1, allowing a task to be able to ignore this rule if it was defined in the task definition, was set at task creation time, or subsequently allowed by a business admin.</p>
<p>In Flows for APEX v25.1, you can now set this parameter from Flows for APEX for a specific Human Task instance, and this will be passed through to the APEX Human Task at task creation time.</p>
<h2 id="heading-removal-of-non-functioning-group-task-assignment">Removal of (non functioning) Group Task Assignment</h2>
<p>APEX Human Tasks can currently only to assigned to named APEX users, and can’t be assigned to a group or a role. In earlier versions of Flows for APEX, we allowed you to define group / role assignment roles — which we couldn’t process. So in Flows for APEX v25.1, we’ve taken the Group Task Assignment away for BPMN User Tasks of type APEX Human Task. I hope that we can put them back at some future date when APEX can do something with them.</p>
<h2 id="heading-viewing-task-status-and-meta-data-from-the-flow-viewer">Viewing Task Status and Meta-data from the Flow Viewer</h2>
<p>In the past, once an APEX Human Task was created, it became a bit of a black hole to the Flows for APEX administrator. After giving the task to APEX to manage, we didn’t provide much information to you until the task had been completed, and control passed back to Flows for APEX. You needed to run your own queries on the APEX tasks meta data - which, being Oracle, is not difficult. But we’ve made all of this much easier in Flows for APEX v25.1! If you are looking at the status and other information about a step in the Flow Viewer (right click on the task in the Flow Viewer in Flow Monitor to get a pop-up window showing the step definition, step events, step errors, etc. Now, if the step is an APEX Human Task, you will see its Task ID in the Step Events tab; clicking on the Task ID brings up a modal window showing the task meta data, status, current task assignment, and task history — so that you can see the current status of the task right from Flows for APEX.</p>
<p>From using this feature while we created and ran many APEX Human Tasks during development and testing of Flows for APEX v25.1, I find that this makes APEX Human Tasks so much easier to use, and makes them feel integrated into Flows.</p>
<h2 id="heading-editions">Editions</h2>
<p>All of the features described above have been added to Flows for APEX v25.1, now available, in both the Community Edition (open source, free of charge on a MIT licence) and to the Enterprise Edition (supported edition with additional functionality, available from Flowquest). Development of features like this are possible because of the development resources that come from the Enterprise Edition - so please consider upgrading to the Enterprise Edition if your organisation is getting significant value from Flows for APEX or would benefit from having product support!</p>
<h2 id="heading-summary">Summary</h2>
<p>We hope that this set of enhancements will make APEX Human Tasks easier to use, feel much more integrated, and become more powerful than they have been to-date. We can’t wait to hear what you have been able to do by combining APEX Human Tasks into your Flows for APEX workflows.</p>
<h2 id="heading-more-information">More Information</h2>
<p>For more information on this topic, see the <a target="_blank" href="https://flowsforapex.org/latest/apex-human-task/">product documentation</a>.</p>
<p>Need advice or further information or advice - schedule an <a target="_blank" href="https://cal.com/rallen2010/15min">introductory chat</a> with Richard.</p>
]]></content:encoded></item><item><title><![CDATA[Flows for APEX  - Statement of Direction]]></title><description><![CDATA[Flows for APEX v25.1 and Beyond
The Flows for APEX team is currently finalizing version 25.1, which will be available this summer in both Community and Enterprise Editions.
This release introduces significant enhancements to AI integration, workflow ...]]></description><link>https://blog.flowquest.net/flows-for-apex-statement-of-direction</link><guid isPermaLink="true">https://blog.flowquest.net/flows-for-apex-statement-of-direction</guid><category><![CDATA[orclapex]]></category><category><![CDATA[Flows for APEX]]></category><category><![CDATA[BPMN]]></category><dc:creator><![CDATA[Richard Allen]]></dc:creator><pubDate>Fri, 13 Jun 2025 11:36:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1749813938181/df89fd6c-1e37-4a0b-8ba1-c95797d6d2fc.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<h2 id="heading-flows-for-apex-v251-and-beyond">Flows for APEX v25.1 and Beyond</h2>
<p>The Flows for APEX team is currently finalizing version 25.1, which will be available this summer in both <strong>Community</strong> and <strong>Enterprise Editions</strong>.</p>
<p>This release introduces significant enhancements to AI integration, workflow control, and developer experience.</p>
<h2 id="heading-ai-service-task">AI Service Task</h2>
<p>With enterprise adoption of AI accelerating, how can AI-powered decision-making and document generation be integrated into your business processes?</p>
<p>The new <strong>AI Service Task</strong> allows calls to generative AI services (e.g., GPT) as part of a BPMN workflow. You can incorporate <strong>RAG (retrieval-augmented generation)</strong> and <strong>vector search</strong> to craft AI prompts based on real-time business context. The AI’s structured output can drive workflow decisions, generate documents, or produce dynamic content for use during execution.</p>
<h2 id="heading-process-suspend-resume-and-rewind-ee-only">Process Suspend, Resume, and Rewind (EE only)</h2>
<p>Real-world processes are never perfect—errors, data issues, or incorrect decisions may require intervention. The new suspend/resume functionality allows administrators to:</p>
<ul>
<li><p>Temporarily <strong>pause</strong> a running process</p>
</li>
<li><p><strong>Rewind</strong> to a previous task, gateway, or subprocess</p>
</li>
<li><p><strong>Edit process variables</strong> or remove execution paths</p>
</li>
<li><p>Fully <strong>resume</strong> execution from the corrected point</p>
</li>
</ul>
<p>While suspended, tasks and timers are frozen and inbound messages are queued. All admin interventions are logged for audit and diagnostics.</p>
<h2 id="heading-apex-human-task-enhancements">APEX Human Task Enhancements</h2>
<p>Flows for APEX supports multiple implementations for BPMN UserTasks, including APEX Human Tasks, Simple Forms, and custom APEX pages.</p>
<p>New enhancements to our APEX Human Task integration include:</p>
<ul>
<li><p>Dynamic task assignment of owners and business admins from within the BPMN model</p>
</li>
<li><p>A new <strong>Task Action plugin</strong> to relay task outcomes, expirations, and cancellations directly to the workflow engine</p>
</li>
<li><p>Automated cleanup of <strong>orphaned tasks</strong> from cancelled workflows</p>
</li>
</ul>
<p>These improvements provide tighter integration between user interactions and workflow execution.</p>
<h2 id="heading-granular-event-logging">Granular Event Logging</h2>
<p>Logging is now more configurable. You can:</p>
<ul>
<li><p>Define logging granularity <strong>per process</strong></p>
</li>
<li><p>Enable <strong>debug-level logging</strong> on specific instances</p>
</li>
<li><p>Capture and store detailed <strong>event-level audit trails</strong> for each process step</p>
</li>
</ul>
<p>This helps developers and operations teams with diagnostics, compliance, and continuous improvement.</p>
<h2 id="heading-simple-process-starter-enhancements">Simple Process Starter Enhancements</h2>
<p>Introduced in 2024, the <strong>Simple Process Starter</strong> provides end users with a centralized "process hub"—a place to launch new processes, view task status, and manage their workflow responsibilities.</p>
<p>Version 25.1 brings improved task visibility and usability refinements to help users quickly find and launch the right processes.</p>
<h2 id="heading-queued-bpmn-message-flow-ee-only">Queued BPMN Message Flow (EE only)</h2>
<p>BPMN Message Flows enable communication between processes—whether within the same APEX instance or across remote systems via REST.</p>
<p>In version 25.1, the <strong>Enterprise Edition</strong> introduces <strong>queued message handling</strong>. Inbound messages are queued and processed in sequence, improving reliability and scalability of inter-process communication.</p>
<h2 id="heading-additional-enhancements">Additional Enhancements</h2>
<ul>
<li><p>Admins can now force a “next step” after an error (EE only)</p>
</li>
<li><p>Error Boundary Events now supported on PL/SQL Script Tasks</p>
</li>
<li><p>BPMN diagrams can now define <strong>instance naming rules</strong></p>
</li>
<li><p>Availability of Process Diagram and instance status data via REST.</p>
</li>
</ul>
<h2 id="heading-platform-requirements">Platform Requirements</h2>
<p>Flows for APEX v25.1 requires:</p>
<ul>
<li><p>Oracle Database 19c or newer</p>
</li>
<li><p>Oracle APEX 24.1 or newer</p>
</li>
</ul>
<p>These requirements align with Oracle’s current support policies, which no longer support older APEX versions.</p>
<h2 id="heading-licensing">Licensing</h2>
<p>Features marked <strong>EE only</strong> are exclusive to the <strong>Enterprise Edition</strong>, available from <a target="_blank" href="https://www.flowquest.net">Flowquest Limited</a>. The Enterprise Edition includes product support and is recommended for significant production use.</p>
<hr />
<h2 id="heading-looking-ahead">Looking Ahead</h2>
<p>Potential areas of future development after v25.1 include:</p>
<ul>
<li><p><strong>Extensible service task connector interface</strong> for connecting workflows to other services such as, for example, APEX Office Print, Docusign, OCI Object Storage, and AI services.</p>
</li>
<li><p><strong>AI-assisted BPMN modeling</strong> for validation, generation, and optimization of models</p>
</li>
<li><p><strong>Administration tools</strong> for managing large-scale Flows for APEX environments</p>
</li>
<li><p><strong>DMN-style Business Rules</strong> for automating business rules in a process.</p>
</li>
</ul>
<p>Note: Inclusion in this roadmap does not guarantee delivery or timeline. Many of these features will be exclusive to the Enterprise Edition. Your support of the Enterprise Edition directly contributes to the continued development and maintenance of both editions.</p>
]]></content:encoded></item><item><title><![CDATA[Flows for APEX: Setting Process Variables from a PL/SQL Script Task]]></title><description><![CDATA[Several BPMN task types allow you to define the task using PL/SQL - these include BPMN Service Tasks, Script Tasks, Business Rule Tasks, and Send Tasks. This raises the question - ‘How do you set process variables from inside your PL/SQL script?’
Ins...]]></description><link>https://blog.flowquest.net/flows-for-apex-setting-process-variables-from-a-plsql-script-task</link><guid isPermaLink="true">https://blog.flowquest.net/flows-for-apex-setting-process-variables-from-a-plsql-script-task</guid><category><![CDATA[Flows for APEX]]></category><category><![CDATA[orclapex]]></category><dc:creator><![CDATA[Richard Allen]]></dc:creator><pubDate>Tue, 25 Mar 2025 18:00:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1742907829917/e5380d85-db4d-4149-9ed5-4879ab1d5341.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Several BPMN task types allow you to define the task using PL/SQL - these include BPMN Service Tasks, Script Tasks, Business Rule Tasks, and Send Tasks. This raises the question - ‘How do you set process variables from inside your PL/SQL script?’</p>
<p>Inside your script PL/SQL, you can set process variables using the process variable PL/SQL api (documented at <a target="_blank" href="https://flowsforapex.org/latest/procvar-api/#procedure-set_var">https://flowsforapex.org/latest/procvar-api/#procedure-set_var</a> ).</p>
<p>How do you get the current <code>process_id</code> and other current state variables that you need as parameters for <code>set_var</code>? There are two ways to access the key items of process state, like <code>process_id</code> within your code - you can reference them as package variables in the <code>flow_globals</code> package, or you can bind them (and any other process variable) using bind syntax. Let’s take a look at how we do that.</p>
<ol>
<li><h2 id="heading-using-flowglobals-package-variables">Using flow_globals package variables.</h2>
</li>
</ol>
<p>The key process state variables, such as <code>process_id</code> are available to use in your PL/SQL script as package variables in the <code>flow_globals</code> package. You reference these in your script as, for example, <code>flow_globals.process_id</code>.</p>
<p>These are the items that are available as flow_globals. Some of these are only relevant in more advanced use, but I’ve included a full list for completeness — so don’t worry if you don’t understand what they all represent!</p>
<div class="hn-table">
<table>
<thead>
<tr>
<td>item</td><td>description</td><td>type definition</td></tr>
</thead>
<tbody>
<tr>
<td>process_id</td><td>the process instance id. Uniquely identifies a running process.</td><td>flow_processes.prcs_id%type</td></tr>
<tr>
<td>subflow_id</td><td>the path within the running process instance.</td><td>flow_subflows.sbfl_id%type</td></tr>
<tr>
<td>step_key</td><td>essentially the step id within the running process instance.</td><td>flow_subflows.sbfl_step_key%type</td></tr>
<tr>
<td>scope</td><td>variable scope - used to differentiate between instances of a variable with the same name in the same process instance (which only occurs when Call Activities or Iterated Tasks and sub processes are being used. Otherwise scope is ‘0’</td><td>flow_subflows.sbfl_scope%type</td></tr>
<tr>
<td>rest_call</td><td>Is this process step being called from the REST interface?</td><td>boolean</td></tr>
<tr>
<td>loop_counter</td><td>only relevant for iterated tasks and sub-processes, to keep track of which copy of the task / sub-process is being run.</td><td>flow_subflows.sbfl_loop_counter%type</td></tr>
</tbody>
</table>
</div><p>So you can set process variables in your PL/SQL Script by doing something like this...</p>
<pre><code class="lang-sql"><span class="hljs-keyword">declare</span>
    my_content_string <span class="hljs-built_in">varchar2</span>(<span class="hljs-number">20</span>) := <span class="hljs-string">'Some Text'</span>;
<span class="hljs-keyword">begin</span>
    flow_process_vars.set_var ( pi_prcs_id   =&gt; flow_globals.process_id,
                                pi_var_name  =&gt; <span class="hljs-string">'My_Process_Variable'</span>,
                                pi_scope     =&gt; flow_globals.scope,
                                pi_vc2_value =&gt; my_content_string);
<span class="hljs-keyword">end</span>;
</code></pre>
<p>So here is a mini process definition to show this...</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1742900017392/6b293cd0-de1c-4ca7-9824-d2baf931d99b.png" alt /></p>
<p>and when that runs, you can see that the process variable <code>My_Process_Variable</code> is correctly created and set to <code>Some Text</code> ...</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1742900030275/15865406-3072-406d-afed-3579958f0817.png" alt /></p>
<ol start="2">
<li><h2 id="heading-bind-syntax">Bind Syntax</h2>
<p> Alternatively, you can bind the key process state variables into your code. In this case, we prefix the variable name with <code>:F4A$</code> when we reference it. Then you turn on binding with the ‘Allow Binding’ switch, and then select <code>Bind Process Variables</code> on the selector.  </p>
<p> Any other process variables that have been defined in the process instance can also be bound using this syntax. For example, I could reference a process variable <code>empno</code> into my script task as <code>:F4A$empno'</code>.  </p>
<p> Our code to set a process variable, now references the process_id and scope using bind syntax like this…</p>
</li>
</ol>
<pre><code class="lang-sql"><span class="hljs-keyword">declare</span>
    my_content_string_2  <span class="hljs-built_in">varchar2</span>(<span class="hljs-number">20</span>) := <span class="hljs-string">'Some More Text'</span>;
<span class="hljs-keyword">begin</span>
    flow_process_vars.set_var ( pi_prcs_id   =&gt; :F4A$process_id,
                                pi_var_name  =&gt; <span class="hljs-string">'My_Process_Variable_2'</span>,
                                pi_scope     =&gt; :F4A$<span class="hljs-keyword">scope</span>,
                                pi_vc2_value =&gt; my_content_string_2
                              );
<span class="hljs-keyword">end</span>;
</code></pre>
<p>When I add this into my process diagram, I turn on ‘Allow Binding’ and select ‘Bind Process Variables’ in the Flow Modeler like this…</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1742900656893/8856c363-f156-4feb-9a98-457a5d29e1e4.png" alt class="image--center mx-auto" /></p>
<p>And here is the result after an instance of the process runs…. Our process variable <code>My_Process_Variable_2</code> was correctly set to <code>Some More Text</code>.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1742900643270/432cd380-1f19-4546-a5aa-219c941d2862.png" alt class="image--center mx-auto" /></p>
<h2 id="heading-summary">Summary</h2>
<p>Flows for APEX contains a process variable system, allowing processes variables to be set from within user’s PL/SQL code using the process variable PL/SQL API. Where you need to supply process state, like the process_id, this is easily available through flow_globals or as bind parameters.  </p>
<p>For more information on Flows for APEX, see the product documentation at <a target="_blank" href="https://flowsforapex.org">flowsforapex.org</a>.</p>
]]></content:encoded></item><item><title><![CDATA[GenAI can help you with BPMN!]]></title><description><![CDATA[Flows for APEX uses the industry standard process modelling notation, BPMN 2.0, to graphically model business processes. Steps in those processes that require user input or processing can then be rapidly developed using Oracle APEX, and Flows for APE...]]></description><link>https://blog.flowquest.net/genai-can-help-you-with-bpmn</link><guid isPermaLink="true">https://blog.flowquest.net/genai-can-help-you-with-bpmn</guid><category><![CDATA[Flows for APEX]]></category><category><![CDATA[#oracle-apex]]></category><category><![CDATA[BPMN]]></category><dc:creator><![CDATA[Richard Allen]]></dc:creator><pubDate>Wed, 20 Nov 2024 17:29:21 GMT</pubDate><enclosure url="https://cdn.hashnode.com/res/hashnode/image/upload/v1731949858015/30255e25-3296-4bb0-8f1a-c90d863e9f1c.gif" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Flows for APEX uses the industry standard process modelling notation, BPMN 2.0, to graphically model business processes. Steps in those processes that require user input or processing can then be rapidly developed using Oracle APEX, and Flows for APEX will then execute and manage instances of those processes. So how can GenAI help us with that?</p>
<p>Business Process Model and Notation (BPMN) representations of a business process appear to the user as a process diagram, showing tasks, events, and gateways that control the process direction. Optionally these diagrams can contain swim lanes showing who (person or organisation) is responsible for each process step, and can show how a process interacts with other processes and/or other organizations.</p>
<p>Under the covers, these BPMN diagrams are stored as an XML document, containing two main sections - one defining the process logic, and a second defining the diagram layout.</p>
<p>Current Gen AI models are good at understanding XML documents, have been trained on material including the BPMN standard, the many books written about BPMN, and the countless number of conference papers written by business consultants over the last two decades. The good news is that you don’t have to stay awake reading all of them - Gen AI has already read them and can help us!</p>
<h2 id="heading-what-can-gen-ai-do-with-a-bpmn-diagram">What can Gen AI do with a BPMN Diagram?</h2>
<ol>
<li><h3 id="heading-explaining-diagrams">Explaining Diagrams</h3>
</li>
</ol>
<p>The first thing that GenAI can do is to explain the diagram to us in business English. Or any other language, but I’ll come back to that later!  </p>
<p>The AI models are good at converting the structure and text contained in the BPMN model to a good, well-structured explanation of the process in a diagram. They seem to be good at inferring background purpose and concepts in a model, and describing them - at a high level, or in as much detail as you want.</p>
<p>Let’s take an example. I have a contrived business process built for a demo that conducts annual employment verification checks for staff. The process is started by HR, and then carried out by HR and line managers. Here’s the top level diagram …</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731942962104/c117b386-a6e9-4c68-98db-abc0298090b9.png" alt class="image--center mx-auto" /></p>
<p>This diagram uses a subprocess for the ‘review department’ task. If I click on the blue arrow icon underneath ‘review department’, I can see the detail of this subprocess…</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731943129378/3741c52d-c7bb-4c66-aa00-38f68f6a6e97.png" alt class="image--center mx-auto" /></p>
<p>And so I can see that the process for each department is to identify staff needing a review, that conduct that review — the details of which are contained in a sub process, which again I can see by clicking on the blue arrow below ‘review staff’.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731943284324/19052fa4-d291-455a-9719-b5f1590b0a73.png" alt class="image--center mx-auto" /></p>
<p>Now I can see that the process conducts a government employability check and then a salary review by the line manager.</p>
<p>What can AI do? If I click the ‘Ask Flo’ button, we send a subset of the diagram to the AI service, ask ask for a brief summary of the business process. Here’s the response.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731943396167/cb3def61-e6d8-4565-956b-9a185563be90.png" alt="Summary of the business process generated by GenAI" class="image--center mx-auto" /></p>
<p>This looks like a good summary of the process. For those who aren’t familiar with the intricacies of BPMN, whether APEX developers new to BPMN or business managers new to process modelling, this should be useful.</p>
<p>The AI service is able to answer more detailed questions about the business process or the mechanics of the BPMN diagram. Here is an arbitrary example where we’ve asked for more details on the staff review part of the process using a free text question from the user…</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731944120458/5a09dce1-ea27-4f80-b557-b75328c07d1d.png" alt="Detailed explanation of the staff review sub process" class="image--center mx-auto" /></p>
<ol start="2">
<li><h3 id="heading-suggesting-process-model-improvements">Suggesting Process Model Improvements</h3>
<p> The next capability that AI can help us with is suggesting improvements to our model, whether these are technical / process modelling improvements or actual business process improvements.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731944704857/39269591-7fe0-4f24-81e2-7a6429a939a2.png" alt="suggestions for improvement to our model" class="image--center mx-auto" /></p>
<p> Our experience is that the suggestions provided by AI also range from the simple / trivial to more complex, less obvious ideas. It’s not always easy to get relevant suggestions from simplified demo processes like our staff review process — but you can see that some of the ideas are good and generally helpful.</p>
</li>
<li><h3 id="heading-model-error-checking">Model Error Checking</h3>
<p> The next capability is to detect and explain model errors. In the Flows for APEX Process Modeler, we have already included a BPMN linting capability that detects various syntactic errors in your model. Additionally, the AI engine is capable of finding another set of potential errors from its existent knowledge of BPMN and from our training prompt.</p>
<p> Here’s an error check on our demo model… which appears to be in good order.</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731945367472/c5f41f72-a67e-42ff-aef3-01c11ed471c8.png" alt="AI output from error checking" class="image--center mx-auto" /></p>
<p> We have a class of typical user errors that come from starting parallel sections in a model, which have to all end at the same merging gateway or go to their own end points. When errors in these. rules occur, our experience is that AI is very good at finding the problem, explaining what the problem is, and suggesting ways to change the model to fix the problem. Certainly better than the typical ‘rule X is broken’ style error message!</p>
</li>
</ol>
<h3 id="heading-describing-message-flow">Describing Message Flow</h3>
<p>One of the capabilities of Flows for APEX Enterprise Edition v24.1 is the ability for one process to collaborate with another process, which might be in the same APEX instance or via-REST at a supplier or customer, by sending and receiving messages. This collaboration can start a remote process, subscribe and wait for an incoming message, interrupt a process when a message arrives, or emit a message when a process or sub-process completes. This is process collaboration via BPMN Message Flow.</p>
<p>One of the key design tasks in setting up process collaboration is to design the message definitions to be used in this structured messaging environment. (I’ll write a blog post about this soon). Again AI can help us to describe the messaging defined in a model, pulling information from all of the places where message structure is defined.<br />Our demo model doesn’t have any messaging in it, so I’ve taken another example here, and given screen shots here of the overall message process and the AI-generated documentation on the message structures.</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731946458502/eb16a1e3-c16d-4a0a-a3fa-e10aa61ba853.png" alt="Supplier - Customer - Shipper process collaboration model" class="image--center mx-auto" /></p>
<p>Here’s a summary of the model for those of you not sure about the BPMN here. (it’s easy to generate this, so why not give it to you….)</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731946683755/d815ca6e-cc06-4c3e-93fc-747c71bbe82c.png" alt class="image--center mx-auto" /></p>
<p>Asking AI for a description of the message structures gives us this output…</p>
<p><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731946891988/912c00a9-018c-408e-a1d0-3d0c0581465b.png" alt="message structures for our supplier - customer-shipper process" class="image--center mx-auto" /></p>
<ol start="5">
<li><h3 id="heading-language-translation">Language Translation</h3>
<p> All of our business process diagrams have been in English so far, but what happens when the diagram is in a language you can’t understand? How can AI help the business manager trying to understand why the business process in the Japanese office isn’t working as they expect? Or how can a support analyst help solve a process problem when it’s 2AM in Tokyo and support has rolled over to the help desk in London?</p>
<p> Well, the current LLMs are all good at language translation, and we can give AI a model in one language and ask for an explanation in another language.<br /> Here’s a model that most of us can’t read (…with apologies to those of you who can read Japanese!)…</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731947486208/977e0cac-67b3-4fe3-a7d6-7e2e7731b2c3.png" alt="Business process diagram with all text in Japanese." class="image--center mx-auto" /></p>
<p> Where to start? Let’s Ask Flo…</p>
<p> <img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1731947730951/2cdfe018-f042-4d6e-b8ba-fca788aa1fce.png" alt="Explanation on the Japanese model in English" class="image--center mx-auto" /></p>
<p> So now we know what the business process is, and how it works! Note that AI gives us the original task names in Japanese, the pronunciation in Romanji (Japanese using Roman characters), and an English translation.</p>
<p> This capability works well in all of the languages that we have had native speakers review output.</p>
</li>
<li><p>Showing off, one of our Flows for APEX users has a requirement to be able to provide output in Welsh language to Welsh users. The AI service can do that** (**to the best of my knowledge, but I can’t read Welsh!)</p>
</li>
</ol>
<h2 id="heading-ai-services">AI Services</h2>
<p>The results above are all created using the OpenAI <code>gpt-4o</code> model. Other models, including the Cohere and OCI AI Service models can understand BPMN to a limited degree, but provide output that is much less full and less reliable than these examples. But as with everything AI, the situation is changing rapidly and other models may be capable of producing this quality of interaction soon.</p>
<h2 id="heading-how-do-i-use-this">How Do I Use This?</h2>
<p>The Ask Flo GenAI Assistant is a feature in Flows for APEX Enterprise Edition v24.1, which is now available on a supported, annual subscription basis from Flowquest. (www.flowquest.net).</p>
<p>The Ask Flo AI feature requires APEX 24.1 and a OpenAI API key with pre-paid balance. (Don’t be deterred by the cost of using the AI service - our work to optimise the parts of the BPMN diagram that is sent to BPMN reduces the number of token used, and so the AI running costs of this are not expensive for the benefit provided. My token usage today to create all of the examples in this blog, along with a several other discarded queries, cost under US$0.02).</p>
]]></content:encoded></item><item><title><![CDATA[The Future of Flows for APEX]]></title><description><![CDATA[Flows for APEX is a BPMN-based process automation and workflow management system for Oracle APEX, the world’s most popular low-code application platform. Flows for APEX enables organisations to model their business processes diagrammatically using th...]]></description><link>https://blog.flowquest.net/the-future-of-flows-for-apex</link><guid isPermaLink="true">https://blog.flowquest.net/the-future-of-flows-for-apex</guid><category><![CDATA[#oracle-apex]]></category><category><![CDATA[Flows for APEX]]></category><dc:creator><![CDATA[Richard Allen]]></dc:creator><pubDate>Wed, 30 Oct 2024 00:00:00 GMT</pubDate><content:encoded><![CDATA[<p>Flows for APEX is a BPMN-based process automation and workflow management system for Oracle APEX, the world’s most popular low-code application platform. Flows for APEX enables organisations to model their business processes diagrammatically using the industry standard Business Process Model and Notation (BPMN), then use the power of the Oracle APEX low code development platform to rapidly develop process automation applications. Flows for APEX provides facilities to execute workflow processes, while providing tools to monitor and manage running workflows.Flows for APEX is an APEX community project that started in 2020, and was initially by Hyand GmbH (formerly MT AG) at ODTUG Kscope 2020. Subsequent major contributors to the project have come from Hyand, Insum, Oracle Corporation, Solicon, and Flowquest Limited. Flows for APEX has been downloaded over 10,000 times, and is now in production use at many large organizations, worldwide.</p>
<p>Starting with Flows for APEX version 24.1, Flows for APEX will be available in two editions:</p>
<ul>
<li><p>Flows for APEX Community Edition. The Community Edition will remain an Open Source, APEX Community Project. The software will continue to be available free of charge on an MIT license by download from <a target="_blank" href="http://flowsforapex.org">flowsforapex.org</a>. Community support available via the project’s GitHub pages.</p>
</li>
<li><p>Flows for APEX Enterprise Edition. The Enterprise Edition is a new offering including major new product features, backed up with technical support, on an annual subscription basis from Flowquest Limited. Major new features in 24.1 will include support for process collaboration with BPMN Message Flow, process step iteration and looping, and a GenAI assistant in the process modeler.</p>
</li>
</ul>
<p>The launch of Flows for APEX Enterprise Edition will allow the project to become financially self supporting, and ensure it has the dedicated resources required to support current and future users and for the product to continue to be enhanced with an exciting future development agenda.</p>
<p>Flows for APEX version 24.1 will include exciting new capabilities in both the community and enterprise editions. Community Edition will include:</p>
<ul>
<li><p>APEX Simple Form, enabling an input form page to be specified without having to specify an underlying database table or APEX page by using a flexible JSON region plugin.</p>
</li>
<li><p>Process Starter. A pre-built end-user application that enables a user to view the catalog of business processes that they can initiate, pick and start a business process, and shows their current task inbox. This eases process deployment into the organisation.</p>
</li>
<li><p>JSON-typed Process Variables. Support for BPMN Color, allowing user-defined coloring of process steps in BPMN diagrams.</p>
</li>
</ul>
<p>In addition to these features, the Enterprise Edition will also add the following major features:</p>
<ul>
<li><p>BPMN Iteration and Looping. Workflow steps often need to be executed repeatedly for each item in a list. Iteration and Looping enables a BPMN task or sub-process to be repeated once for each item in a list or a query result set, either sequentially or in parallel. It also allows tasks or sub-processes to be executed continuously in a loop until a complete condition is met.</p>
</li>
<li><p>Process Collaboration with BPMN Message Flow. Enable processes to message each other, whether on the same APEX instance or to a remote endpoint via REST. Message Flow allows a process instance to message another process instance, subscribe and wait for an incoming message, start another process instance, interrupt or change the process flow in another instance with message boundary events, or emit a message on completion of a process or sub-process.</p>
</li>
<li><p>AI Assistance to the Process Modeler. The current set of LLMs understand BPMN, and so are able to summarise, detect and explain model errors, suggest technical, modelling or business process improvements, and explain models built in different languages. Additional AI use cases and features are planned in later releases.</p>
</li>
</ul>
<p>Development of release 24.1 is almost complete, and we are planning to release this imminently, usual caveats notwithstanding.</p>
<p>We are excited about the future of Flows for APEX and to be shipping the next release soon.</p>
<p>Niels De Bruijn<br />Hyand GmbH</p>
<p>Richard Allen<br />Flowquest Limited</p>
]]></content:encoded></item><item><title><![CDATA[Flows for APEX v24.1 release announcement]]></title><description><![CDATA[We are excited to introduce Flows for APEX 24.1, packed with exciting new features for both the Community and the newly launched Enterprise Edition.
Key Features in 24.1
1. Developer-Free Simple Form Task
Empower business users to create simple proce...]]></description><link>https://blog.flowquest.net/flows-for-apex-v241-release-announcement</link><guid isPermaLink="true">https://blog.flowquest.net/flows-for-apex-v241-release-announcement</guid><category><![CDATA[Flows for APEX]]></category><category><![CDATA[orclapex]]></category><category><![CDATA[#oracle-apex]]></category><dc:creator><![CDATA[Richard Allen]]></dc:creator><pubDate>Wed, 09 Oct 2024 23:00:00 GMT</pubDate><content:encoded><![CDATA[<p>We are excited to introduce <strong>Flows for APEX 24.1</strong>, packed with exciting new features for both the Community and the newly launched <strong>Enterprise Edition</strong>.</p>
<h2 id="heading-key-features-in-241"><strong>Key Features in 24.1</strong></h2>
<h3 id="heading-1-developer-free-simple-form-task"><strong>1. Developer-Free Simple Form Task</strong></h3>
<p>Empower business users to create simple processes without APEX or database skills. Users can now build process data input forms using JSON-typed variables.</p>
<h3 id="heading-2-introducing-flows-for-apex-enterprise-edition"><strong>2. Introducing Flows for APEX Enterprise Edition</strong></h3>
<p>This new edition offers powerful features, including:</p>
<ul>
<li><p>Process collaboration with BPMN Message Flow</p>
</li>
<li><p>Iterating and looping of process steps</p>
</li>
<li><p>GenAI support for process modeling with <strong>askFlo</strong></p>
</li>
</ul>
<p>Enterprise Edition users also gain access to product support and annual advisory sessions.</p>
<h3 id="heading-3-full-process-collaboration-with-bpmn-message-flow"><strong>3. Full Process Collaboration with BPMN Message Flow*</strong></h3>
<p>Enhanced inter-process communication:</p>
<ul>
<li><p>Trigger new processes with message events</p>
</li>
<li><p>Send/receive messages between processes</p>
</li>
<li><p>Adjust workflows dynamically based on message inputs</p>
</li>
</ul>
<h3 id="heading-4-iterating-and-looping-process-steps"><strong>4. Iterating and Looping Process Steps*</strong></h3>
<p>Easily repeat tasks for each item in a list, array, or SQL query, either sequentially or in parallel, with full support for BPMN loops.</p>
<h3 id="heading-5-genai-support-with-askflo"><strong>5. GenAI Support with askFlo*</strong></h3>
<p>With GenAI assistance, users can:</p>
<ul>
<li><p>Explain BPMN models in plain language, even when in a foreign language</p>
</li>
<li><p>Detect and correct model errors</p>
</li>
<li><p>Suggest business process improvements</p>
</li>
</ul>
<p>GenAI features require Oracle APEX v24.1 or later, Flows for APEX Enterprise Edition, and acess to the OpenAI gpt-4o model via the paid OpenAI API service.</p>
<h3 id="heading-6-process-viewer-enhancements"><strong>6. Process Viewer Enhancements</strong></h3>
<p>The enhanced BPMN Process Viewer now allows users to:</p>
<ul>
<li><p>Drill into nested iterations</p>
</li>
<li><p>Highlight model steps with BPMN Color</p>
</li>
<li><p>Open user tasks directly from the viewer</p>
</li>
</ul>
<h2 id="heading-community-edition-still-open-source"><strong>Community Edition: Still Open Source!</strong></h2>
<p>The <strong>Flows for APEX Community Edition</strong> remains 100% open source under the MIT license, with community support via GitHub.</p>
<p>Explore the full details of version 24.1 and start transforming your workflows today!</p>
<p><em>Some features marked with an asterisk (\</em>) are exclusive to the Enterprise Edition.*</p>
<p><a target="_blank" href="https://flowsforapex.org/Flows4APEX241Features/">Learn more about the release</a></p>
]]></content:encoded></item></channel></rss>