Camunda BPM workflows are useful to model processes — APEX is excellent for rapid application development — Combining both in a project showed what the challenges and possibilities are in process automation.

📃 Most applications in companies are form-based. They require the user to add, edit or delete data in a database. And they all have in common, that they follow some sort of workflow with business rules and events.

🔩 Since APEX is a great way to create form-based applications, we tried to combine it in a small project with Camunda BPM for process automation. The goal was to have a visual overview of the process without coupling it to the frontend application or embed it somwhere in the code. This separation was achieved with Oracle APEX as a User interface and a separately deployed Camunda BPM for the process automation.

Architecture

🏯The APEX frontend application used the Camunda REST Endpoints for the communication with the Camunda process. Camunda — on the other side — used the ORDS REST Endpoints for the database calls.

Architecture of the two applications — APEX and Camunda BPM

The REST Endpoint layers provide a clear separation and precise interfaces for the communication between the two parts. The APEX Frontend is the only component that directly accesses the database to update, insert and delete data.

Process Overview

The task at hand was to automate a proposal process. A detailed explanation and our solution are described in the following video.

Video about Process Automation with Camunda BPM and Oracle Apex

👨‍🏫 The proposal process allows each member of a company to create proposals that have a veto period of 10 days. If no other member vetos the proposal is accepted. If a member vetos, the proposal is declined. So pretty straight forward.

Camunda Process

👨‍💻 The automated process was designed in Camunda BPM as shown in the following picture.

🔩 All the service tasks in the process are calls to the ORDS REST Endpoints.

Camunda Process for the Proposal Process

📧 The message events were used to catch messages that were triggered by APEX to inform the process about new or changed data in the GUI. Based on that data, the process continues. The information that was handed over through the message events was either used for making decisions at gateways, hand over variables for the decision table or to end the process before the time limit was expired.

#rest-api #camunda #oracle-apex #oracle-database #low-code

Combining Low-Code Application Development with BPM Workflows
10.95 GEEK