Audit Oracle Fusion Integrations…What?
By: Jonathan Stevenson
Tags: Fusion, Data, Integration, Oracle, Oracle Cloud

Let me set the stage. You start an amazing project with a new client. They want integrations between their third-party systems. You know the story…payroll, hr, financials, supply chain. They all need external data.

You jump right in. To use a nursery rhyme; data and process sitting in a tree k-i-s-s-i-n-g. First comes loading then comes transformation, then comes useable data into Fusion. Seems simple, no? However, getting there is where the magic lies, and auditing that magic is critical to useable data and identifying issues. Let’s talk about that.

Oracle Integration Cloud (OIC) has some amazing connectors to all things Fusion and TONS of other systems and generic processes like SFTP. Here’s a list if you’re interested: https://docs.oracle.com/en/cloud/paas/integration-cloud/find-adapters.html. It also does some amazing things when it comes to auditing what data came in and what data went out. But what if you’re not using Integration Cloud? How do you audit data in and data out?

Oracle Fusion has many ways of pulling and pushing data. However, what it does well is the extract, transform, and loading of data. What most integration developers are used to doing is prepping data, formatting data, staging data, and loading data. However, because Oracle Fusion is cloud-based, you don’t necessarily have direct access to tables. You have REST services, SOAP services, and other Fusion-specific services like the Human Resources Data Loader (HDL). When integrators think about these services, it's typically a send-and-forget. SOAP and REST are request and response services. They have “machinery” that does the work to accept the data.

What Oracle Fusion does differently is it provides access to the underlying staging tables. Ok, enough talk, let’s get into a specific example:

In most implementations, there is a need to push general ledger transactions into a system from a third-party source. While REST would work in this scenario, a developer is generally asked to push hundreds if not thousands of rows of data in a single transaction.

Due to the nature of HTTP or SOAP over HTTP, you can send a file to Fusion with the data, but you get a response back stating it was accepted, but what failed? What succeeded? How do you alert users to data they need to fix?

Welcome to the interface tables.

When you “load” GL data to oracle fusion, prior to import, it drops into a table called GL_INTERFACE. If you want to see what made it vs your source data, you can easily call into this table using SOAP services and pull back that data using a simple query:

select

status

, status_description

, je_source_name as source

, je_category_name as category

, to_char(date_created, 'MM-DD-YYYY') as created_date

, created_by

, request_id

, segment1 || '-' || segment2 || '-' || segment3 || '-' || segment4 || '-' || segment5 || '-' || segment6 || '-' ||

segment7 as account_string

, entered_dr as debit

, entered_cr as credit

, to_char(transaction_date, 'MM-DD-YYYY') as transaction_date

, period_name as period

, group_id as group_id

, ledger_name as ledger

from

gl_interface

where

1=1

and (group_id = :p_group_id or request_id = :p_request_id)

This query will give you back staged data to the GL_INTERFACE table based on a grouping parameter or a request-id. This grouping parameter is included in the data you send to Oracle so if you send a group of files into Oracle, you can pull back only the status you need.

It also includes the request-id. This id is related to the process that Oracle kicks off to load the data and can be also used to group the data. The great thing about using this parameter is the response from the REST or SOAP call to kick-off the load includes this parameter. So, if you don’t send in a group id, you can use this to grab your data.

This model can then be used to kick off a report to users that tell them a few things:

Here’s the data we just loaded Did the data balance (debits + credits = 0)? What do I need to fix?

I hope this process helps someone out there trying to determine the best path to auditing data from third-party systems and getting users involved in the integration process so they can be true data stewards without impacting their daily routines.

I’ll provide more queries I use regularly to audit data in future posts

Jonathan is the Manager of the Enterprise Services Team at Alithya who focuses primarily on integrations, conversions, and all things Oracle Fusion.

www.alithya.com