X

Best Practices from Oracle Development's A‑Team

Extend Oracle application cloud approvals on Oracle Cloud Infrastructure.

Mani Krishnan

 

Introduction

Oracle Fusion SaaS applications, such as HCM and ERP, provide the ability to approve certain transaction before they are committed. The rules behind these approvals are exposed to customers through Transaction Console or BPM worklist applications. If necessary, customers can modify conditions of approval rules or add new rules to the rulesets for a transaction. Customers can also configure various aspects of approvals, such as the approval groups, approval exceptions and notifications.

Approval capabilities in Oracle Cloud Applications, on purpose, do not include complex BPM capabilities. For example, approval rules can use data accessible within the SaaS application, but are not allowed to an external API to fetch data from another application. They also do not permit complex logic such as iteration. Also note that certain SaaS applications, for example, Oracle Sales Cloud, do permit more complex BPM processes through application composer. Refer to product-specific documentation for more information.

An example approval process in Oracle application cloud.

Occasionally, customers might need to externalize approval processes, either because of the complexity of the desired approval processes or because of other reasons such as dependency on external approvers who cannot be granted access to customers’ SaaS applications.

Oracle cloud Infrastructure (OCI) offers tools and platforms to easily extend the capabilities of Oracle SaaS applications. Oracle Integration Cloud on OCI provides business process management capabilities. It is also possible to deploy 3rd party BPM platforms such as Camunda BPM on OCI easily, either directly on OCI compute instances or on Oracle Kubernetes Engine (OKE).

This blog will explain a use case for extending SaaS approvals on a BPM platform and outline the steps to implement such an extension. 

Why use Business Process Management (BPM)?

Given a valid business case to extend approvals, customers now grapple with multiple choices of platforms and tools for implementation. These options range from generic platforms such as WebLogic on OCI or Oracle Visual Builder, to full-featured BPM platforms. 

It can be tempting to choose a tool and platform that customers’ developers are well-versed in, for quick initial results. However, it can cost a lot more in time and resources to even match the capabilities of the approvals provided by Oracle cloud applications, let alone to exceed them. 

For example, these are approval capabilities of Oracle applications cloud that would be tedious to implement on a generic platform:

  • Flexible allocation of approvers and approval groups
  • Changes to approvals assignments in runtime
  • Configurable notifications
  • Configurable approval rules
  • Approval exception and error handling

With the choice of a Business Process Management (BPM), all the above features above are available out-of-box, which frees the developers from having to develop these capabilities from scratch and, even harder, having to maintain them. In addition, here are some additional benefits that BPM platforms can provide:

  • Standards-based approach process and rules definition. BPMN, DMN, CMMN are standards supported by Oracle Integration Cloud. Using these standard specifications makes it easier to define and understand the Processes and to port them between products easily.
  • Complex processes and callouts. These capabilities allow additional data to be considered for processing of the approvals, from various data sources and services.
  • Robotic process automation (RPA), a capability that simplifies integration of existing legacy platforms.

Use case: Timecard approvals by external approvers

It is common for enterprises to augment their workforce with specialized talent needed on a temporary basis. These workers are typically treated as Contingent Workers on Oracle HCM cloud. It is also common for such workers to be employed by other firms that provide staff-augmentation services.


Let’s consider a scenario in which a contingent worker submits timecards in Oracle HCM time and labor application. These timecards are approved by their supervisors within the enterprise. 

Additionally, these employees might also need to record their time with their employers and obtain approvals from their direct managers at the staff-augmentation firm, before the work is billed back to the enterprise. This is typically done through manual and automated processes disconnected from approvals and payables within Oracle applications. 

These disconnected processed can be connected together to provide a more seamless experience in processing timesheets and submitting invoices, by modifying approval rules and by implementing a simple approval process on OCI accessible to external approvers. Here is the high-level flow:

 

High-level view of extension to approvals

High-level steps to implement the process extension

Here are the high-level steps on Oracle HCM Cloud Time and Labor and on OCI.

  1. Locate the Time approval transaction on HCM cloud. Transactions can be looked-up in Transaction console. 
  2. Add an approval group in Oracle HCM cloud. This approval group only needs a single non-person user (let’s call it “TempApprover” for brevity) that will be used to look-up pending approval tasks under the user and to approve remotely using REST API. 
  3. Add a new rule to the Time approval ruleset. This rule needs to, based on employee’s type of Contingent worker, send the approval group created in the previous step. Optionally, the timecard might also be approved by contingent worker’s supervisor before it is sent to the new approval group for next-level approval.
  4. Test some timecards for sample Contingent workers. If the new rule works, approvals for the timecards will be pending under the approval group created in step 2.
  5. Implement a BPMN process, to be deployed on OCI. The OCI subscription might be owned by customer or by customer’s vendor.

The BPMN process will perform these tasks.

  • Using Oracle application BPM API, look up pending approval tasks waiting for user “TempApprover”. Each approval task represents a pending Time Card approval for a contingent worker. 
  • Find more information about the Time card behind the approval task, by invoking BPM task details API and then HCM Cloud REST API.
  • Submit a human task with summary timecard information for approval by the manager (“External approver”). 
  • If the human task is approved, then, submit calculate an invoice and submit it to ERP Cloud using REST API. Then, call BPM task API to programmatically approve the pending task in HCM cloud. Optionally, send an email notification to the contingent worker’s email. 
  • If the human task is rejected by External approver, then call BPM task API to programmatically reject the pending task, along with a reason for rejection. The process skips the invoice step in this case. Optionally, send an email notification to the contingent worker’s email. 
  • Following is the graphical representation of the external approval and invoice creation process.

 

BPMN extension process.

Refer to documentation for Oracle ERP or HCM cloud for more information about approval capabilities for each product. Depending on the BPM platform chosen, refer to relevant documentation. Oracle Integration Cloud Process provides stellar BPM capabilities. In another follow-up blog, I’ll delve into details of the implementation.

References

Oracle HCM cloud approvals and notifications

Approval management for Oracle Financials cloud

Oracle Integration cloud process