DEV Community

Automating Core HR Data Correction Using BI Publisher and HCM Data Loader

Introduction:

In large-scale Oracle HCM Cloud implementations, data drift between Core HR, global payroll, and downstream third-party systems is an ongoing challenge. When mass organizational restructures, position updates, or external Applicant Tracking System (ATS) syncs occur, errors frequently slip through. Common discrepancies include mismatched worker categories, broken manager hierarchies, or assignments missing mandatory evaluation criteria.

When these misalignments happen, the downstream impacts are costly, payroll runs fail due to missing attributes, security profiles break, and compliance reporting becomes inaccurate. Manually identifying these data gaps requires HR teams to run complex audits, manually format Excel spreadsheets, and upload corrective files via HCM Data Loader (HDL). For global enterprises processing thousands of worker changes daily, this manual approach is slow, prone to errors, and highly inefficient.

Solution Architecture:

To solve this problem at scale, we can build a decoupled, automated remediation pipeline. This architecture shifts the burden from manual HR auditing to an automated query engine. The process uses a high-performance BI Publisher Data Model configured with a Global Temporary Table (GTT) infrastructure to run delta-reconciliation logic across core worker tables (PER_ALL_ASSIGNMENTS_M, PER_ASSIGNMENT_SUPERVISORS_F, and PAY_ALL_PAYROLLS_F).

Instead of simply reporting errors on a dashboard, the BI Publisher engine acts as a data generator. Using BIP Text Output Bursting, the data model formats the discovered errors directly into valid, pipe-delimited HDL business object syntax (such as Worker.dat or Assignment.dat). The generated file is then pushed directly into an Oracle WebCenter Content (UCM) bucket or an SFTP directory, where an automated OIC integration or an Essbase scheduled process picks it up and processes it through the HDL interface. This approach creates a closed-loop, self-healing data pipeline.

[Scheduled BIP Audit Engine Runs]
        |
        |
        |
[Populate PL/SQL GTT with Assignment Deltas]
        |
        |
        |
[BIP Bursting Engine Processes Rows Engine-Side]
        |
        |
        |
[Dynamic XML-to-Text Transformation (HDL Structure)]
        |
        |
        |
[Direct File Delivery to UCM / hcm/dataloader/import]
        |
        |
        |
[Automated HDL Ingestion Engine Automatically Resolves Gaps]
Enter fullscreen mode Exit fullscreen mode

Technical Implementation:

To implement this pipeline, we bypass standard layout templates. Instead, we use SQL-based formatting within a PL/SQL data package to output clean, raw HDL data segments.

1. The Reconciliation Global Temporary Table (GTT):
This database-tier table stages corrupted or drifting assignment records during the execution run, preventing long-running database joins from slowing down the system.

CREATE GLOBAL TEMPORARY TABLE XX_HR_RECON_TMP (
    person_number      VARCHAR2(30),
    assignment_number  VARCHAR2(30),
    action_code        VARCHAR2(30),
    effective_start_dt DATE,
    legal_entity_id    NUMBER,
    system_error_type  VARCHAR2(50),
    hdl_line_generated VARCHAR2(4000)
) ON COMMIT PRESERVE ROWS;
Enter fullscreen mode Exit fullscreen mode

2. The Core Audit & Extraction PL/SQL Package Logic:
This package runs the reconciliation query, identifies assignments that lack a valid supervisor or have an invalid payroll setup, and builds the raw HDL string directly into the database row.

CREATE OR REPLACE PACKAGE BODY xx_hr_automation_pkg AS

    PROCEDURE run_assignment_audit IS
    BEGIN
        -- Clear staging environment for current session run
        EXECUTE IMMEDIATE 'TRUNCATE TABLE XX_HR_RECON_TMP';

        -- Identify drifted or broken assignment records
        INSERT INTO XX_HR_RECON_TMP (
            person_number,
            assignment_number,
            action_code,
            effective_start_dt,
            system_error_type,
            hdl_line_generated
        )
        SELECT 
            papf.person_number,
            paam.assignment_number,
            'CORR_ASSIGN', -- Data Correction Action Code
            paam.effective_start_date,
            'MISSING_SUPERVISOR',
            -- Dynamically construct valid HDL Worker.dat Metadata rows
            'MERGE|Assignment|' || papf.person_number || '|' || paam.assignment_number || '|' || 
            TO_CHAR(paam.effective_start_date, 'YYYY/MM/DD') || '|CORR_ASSIGN|CORRECTION'
        FROM 
            per_all_assignments_m paam
            JOIN per_all_people_f papf ON paam.person_id = papf.person_id
        WHERE 
            paam.assignment_status_type_id = 1 -- Active Assignments Only
            AND NOT EXISTS (
                SELECT 1 
                FROM per_assignment_supervisors_f pasf 
                WHERE pasf.assignment_id = paam.assignment_id
                AND TRUNCATE(SYSDATE) BETWEEN pasf.effective_start_date AND pasf.effective_end_date
            )
            AND TRUNCATE(SYSDATE) BETWEEN paam.effective_start_date AND paam.effective_end_date
            AND TRUNCATE(SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date;

        COMMIT;
    END run_assignment_audit;

END xx_hr_automation_pkg;
Enter fullscreen mode Exit fullscreen mode

3. The BI Publisher Text-Extraction XML Data Model:
The BI Publisher data model calls the database package execution block and pulls the structured lines out as a single XML document tree.

SELECT 
    'METADATA|Assignment|PersonNumber|AssignmentNumber|EffectiveStartDate|ActionCode|ReasonCode' AS hdl_header_line,
    hdl_line_generated AS hdl_data_line
FROM 
    XX_HR_RECON_TMP;
Enter fullscreen mode Exit fullscreen mode

Configuration & Deployment Steps:

1. Configuring BI Publisher for Text Extraction:
Standard BIP layouts generate PDF or XML files. To output a clean .dat file for HDL ingestion, use this configuration pattern.

  • Navigate to BI Publisher Enterprise Administration.
  • Create a new report layout using the Text output option rather than RTF.
  • Configure the EText Template structure using standard delimiter markers.

  • Map the hdl_header_line to run once at the top of the file, and loop through the hdl_data_line query results to build the rest of the file.

2. Automating the Ingestion Loop via UCM:

  • To fully automate this self-healing process, route the file directly to the loader utilities.
  • Open the Bursting Definition tab inside your BI Publisher Data Model.
  • Set the delivery destination format to WebCenter Content (UCM).
  • Point the destination parameters to the account path: hcm/dataloader/import.
  • Set up an enterprise schedule to run this report nightly. When BI Publisher runs, it places a newly formatted Worker.dat file directly into the automated HDL queue, which processes and corrects the data gaps before the next business day begins.

Sample Worker.dat file:

METADATA|Worker|SourceSystemOwner|SourceSystemId|EffectiveStartDate|PersonNumber|StartDate|DateOfBirth|ActionCode
MERGE|Worker|EMP|HDL1001|2006-01-01|1001|2006-01-01|1990-05-12|HIRE

METADATA|PersonName|SourceSystemOwner|SourceSystemId|EffectiveStartDate|PersonNumber|NameType|FirstName|LastName
MERGE|PersonName|EMP|PN1001|2006-01-01|1001|GLOBAL|John|Doe

METADATA|WorkRelationship|SourceSystemOwner|SourceSystemId|PersonNumber|DateStart|LegalEmployerName|WorkerType|ActionCode
MERGE|WorkRelationship|EMP|WR1001|1001|2006-01-01|US Legal Employer|E|HIRE
Enter fullscreen mode Exit fullscreen mode

Summary & Conclusion:

By moving data validation from manual spreadsheets to an automated database architecture, this solution removes the need for manual administrative auditing. Using BI Publisher Data Models to generate corrective HDL data files allows the system to identify and repair core data errors automatically. This pipeline cuts down on payroll run failures, keeps system hierarchies accurate, and provides enterprise environments with a scalable, automated approach to data health.

Top comments (0)