Have you ever been caught in the middle of an Oracle APEX application that grew from something fairly straightforward into a hot mess of approval flows with a ton of business logic buried deep within its pages?
A business critical application with hundreds of users in one of world’s leading financial institutions, trying to implement change after the 2008 crisis, perhaps?
I have, and believe me, it’s no fun.
And even less so when you’re working to not only support thousands of in-flight instances, but also make business process changes practically on the fly. I’m lucky I made it out alive, and lived to tell the tale.
Had Flows for APEX (Flows) been around back then, my experience would have been completely different. In fact, Flows for APEX might just be one of the best things to happen to APEX in a long time. It’s a powerful workflow engine extension for Oracle APEX applications, and it’s open source!
And while your business processes might be nowhere near as complicated or convoluted as those of a mortgage lender trying to fix things post 2008, if you’re handling any sort of workflow in your Oracle APEX application, believe me, you’d do well to give Flows for APEX a try.
There are many reasons why using BPMN-based ‘Flows for APEX’ can benefit your business, and I’ll highlight some of my favorites in this article.
1) Process documentation
That app I was talking about? It started off simply enough. A single application with a couple of approvals to handle changes to legal obligations in the mortgage lending industry.
I was handed a PDF of a Visio diagram and was told: this is it. This is the process. These are the rules. But just in case, let’s keep it…. flexible.
That was the last time I ever saw a flowchart of any kind.
Fast forward months and even years later, that application had become a sprawling web of inter-related applications spanning business functions, departments, roles, with ever changing complexities and rules. The application had been evolving through a series of email exchanges, JIRA cards, and multiple business users. All of a sudden, nobody really knew what the process looked like anymore, and implementing any changes, even small ones, was daunting. Most of the logic was buried deep within the pages and packages I had lovingly crafted.
I still break a sweat thinking back to that time. How I would have loved an updated diagram to even be able to support conversations with the business. Conversations with new developers I was bringing on.
This is where Flows for APEX comes in.
Flows for APEX allows you to define your process flows in BPMN 2.0 without any need for programming or scripting knowledge. You can easily create processes by dragging & dropping shapes into place, straight in your browser. No need for any additional licenses or software of any kind. Already using APEX? You have everything you need to use Flows and model your processes.
Your business process documentation is visible and understandable to all, not buried deep with the code. It can handle simple processes through to complex ones as can be seen with ‘the Full Monty’ sample delivered with the Flows application.
When you’ve got a complex business process, sometimes it can be difficult to know what rules and/or decisions were applied to an instance leading to a specific outcome.
My expense was approved, but why? Was it automatically approved because it was less than $50? Did my manager initially ask for additional justification before approving it?
Or alternatively, it was rejected. Did my manager approve it and then it got rejected by the VP? Or did my manager reject it outright?
Traceability is a crucial element of a business process. It allows for transparence, and the ability to track and regulate activities and transactions as they are performed. This can be especially useful when it comes to reporting, regulatory compliance, customer service situations, and overall client satisfaction. With traceability, a customer can easily be given the exact set of rules and decisions that led, for example, to their insurance application being denied.
Without Flows for APEX, building this into an Oracle APEX application be be very cumbersome indeed. But Flows for APEX allows you to trace back the decisions and rules applied which led to a specific outcome. Every decision is logged automatically. Developers can easily illustrate the paths that were taken.
So what happens when you’ve designed, implemented and deployed that perfect business process, complete with complex rules, validations, decision engines, and approvals, and… you need to make a change.
Although your initial instinct might be to ask: where was this scenario when we had all those discovery interviews?? Or… You SAID this process was rock solid and would not change, EVER, this is not an approach I would recommend 🙂
Do you put your process on pause and wait until all instances complete before deploying the update? Do you try to somehow retrofit your in-flight instances into the new process and figure out where each of them now goes?
None of these options are ever very appealing, yet when your workflow, rules and decisions are coded exclusively within your APEX application and its supporting PL/SQL packages, your options for deploying changes to the process while supporting existing instances are pretty limited.
The beauty of using a workflow engine tool like BPMN-based Flows for APEX is that it offers the flexibility to make changes without affecting in-flight instances. In fact, you can even make changes to your process model and deploy them live – all without ever having to interrupt service or take your applications offline.
Existing instances continue on the original process flow to completion, as they should, and new ones follow the newly defined rules and logic. Easy peasy!
4) Time recording for process KPIs
Time is money, amiright? When looking at overall process efficiency, the time it takes for steps to complete might be one of your prime success measures.
Where does my process tend to get stuck? What is the active time for the various steps within it? Are there any opportunities for improvement with a little process re-engineering?
In a traditional Oracle APEX application, this kind of time measurement and reporting is no simple task. With Flows for APEX, step timing is automatically recorded with no additional coding required, allowing developers to eventually create any number of reports to be used in various ways.
With Flows for APEX, you can measure the overall time taken by your process, as well as individual steps within it, and differentiate between idle and active time easily. This will make building dashboards and KPI reporting a lot easier that it’s ever been before.
5) True segregation of business logic from the application
“Keep your business logic out of the application.”
We’ve all heard that time and time again, right? And that’s why, as Oracle APEX developers, we do our best to keep our business logic in PL/SQL packages, and make the simplest of calls to them from our application.
With Flows for APEX, though, this goes much further, as even less of your process is handled within the code of your APEX application.
This makes it even easier for multiple team members to work on your application. You can have one developer putting together the APEX front end with minimal logic, and another working with the business developing and tweaking the flow, rules, decisions that drive the process.
You may also be lucky enough to find a user who has expert knowledge of BPMN working with the Flows for APEX application directly, allowing for greater communication and collaboration between the business and IT.
Need to make a change to your process? It’s possible to not even have to touch the front end all, and deploy changes simply within the Flows for APEX engine.
6) Task inboxes
In a multi-user, multi-role, complex business process, it can be extremely cumbersome to design your user inbox or queues effectively.
Back to that mortgage lending app of mine. As policies and procedures, in response to ever changing legal obligations, were drafted, written, and updated, they had to go through a huge sequence of steps and approvals before finally being released and communicated.
How I wish we’d had Flows for APEX then!
The queues and task inboxes were a nightmare to code, and depended on so many different data points. What status was the obligation in? What category? Had it previously been approved or rejected? Did it need a writer? I can’t even begin to remember all the things we had to look at, but I still remember the feeling of dread when I received an email, or a Slack chat, that started with: Michelle, could you tell me who’s queue OBL-XXXAAA123 is in right now? We can’t seem to find it anywhere..
Who works on a task when it’s in this particular state? Who’s the next approver? What rules and complex logic do I need to build in to my SQL query in order to display the correct tasks, to the correct users, at the correct time?
In a classic Oracle APEX application, the burden of coding this for end users lies squarely with the developer, and can be quite daunting. However, Flows for APEX simplifies this in a big way with its flow_task_inbox_vw view. Include it in your query on your user landing page/dashboard, and see your pools and lanes come to life. While this won’t necessarily remove your query’s complexity in its entirety, you’ll definitely appreciate the way this view simplifies your queues.
There are many more things I love about Flows for APEX I haven’t touched on in this article, and I look forward to covering it more and more as we, at Insum, use it in a growing number of client projects. But these 6 benefits should hopefully have convinced you to at least consider it for your next Oracle APEX project.
If you’re interested in trying it out, you can download it for free (it’s completely open source) from the Flows for APEX page here. There is a great tutorial you can walk through to get started, and the application comes with a dozen sample flows that cover the basics of BPMN. I also recommend the following book that explains BPMN methodology thoroughly and can help you navigate themes like inclusive/exclusive/parallel gateways, boundary events, start/end/intermediate events, and much more.
And finally, to dive deeper into the world of Flows for APEX, reach out to us, as we regularly run 1 or 2-day instructor-led training sessions, or can work with you and your teams to implement Flows for APEX in your Oracle APEX applications.
With Flows for APEX, there are so many benefits to leveraging BPMN in Oracle APEX applications that simply cannot be ignored. I really hope you’ll give it a try!