GL-01 EBS R12.x General Ledger Tier 2 Data Fix

Journal Import Diagnostic

Diagnoses all GL_INTERFACE errors — invalid accounts, closed periods, unbalanced journals, invalid sources/categories, missing flexfield segments, and orphaned interface groups.

PlatformOracle EBS R12.x
Input RequiredGroup ID or Journal Source
Diagnostic Checks40+
Data Sources8 Oracle tables
Fix Options5 guided fixes
Backup CreatedYes — Automatic

Why This Fails — and What It Costs

Oracle EBS General Ledger journal import failures stop accounting entries from reaching the ledger — and every module that generates accounting transactions depends on this process. Accounts Payable invoices, AR receipts, Fixed Assets depreciation, Inventory cost transactions, Work in Process completions, and Project accounting lines all flow through the GL journal import pipeline via the GL_INTERFACE staging table. When the Journal Import concurrent program fails, or completes but rejects some records, those accounting entries accumulate in GL_INTERFACE with an ERROR status and the ledger balance is understated by exactly the amount of the rejected journals.

The most common failure mode is the unbalanced journal group. Oracle GL requires that the sum of all debits equals the sum of all credits within a GROUP_ID in GL_INTERFACE. When a source system populates the interface table with a GROUP_ID that spans multiple ledgers or currencies without proper balancing entries, the journal import rejects the entire group — not just the unbalanced records. The error is reported in the Journal Import Execution Report as 'The journal batch is out of balance' and references the GROUP_ID, but the report does not identify which specific account combination or line within the group caused the imbalance.

Account validation failures are the second major category. Every CCID referenced in GL_INTERFACE must exist in GL_CODE_COMBINATIONS with ENABLED_FLAG = 'Y', SUMMARY_FLAG = 'N', and a START_DATE_ACTIVE that is on or before the journal date and an END_DATE_ACTIVE that is null or after the journal date. A chart of accounts cleanup that disables or end-dates a code combination mid-period will cause every journal line referencing that CCID to fail import, across every source system that uses it — AP, AR, FA, PO simultaneously. The journal import failure report will show hundreds of lines with the same root cause, but identifying the specific disabled CCID requires querying GL_CODE_COMBINATIONS directly.

GL-01 runs a complete journal import diagnostic — interface error summary from GL_INTERFACE grouped by error type and GROUP_ID, balance verification for each group with exact debit/credit variance, account validation against GL_CODE_COMBINATIONS with active status and date range check, period status validation, journal source and category existence check, and orphaned record detection for ERROR-status records older than 48 hours. It generates the corrected interface records for each fixable error type and the resubmission parameters for Journal Import.

What This Script Diagnoses

GL-01 systematically investigates every major condition that can cause the issue this diagnostic targets. Below is the complete coverage breakdown.

Interface Error Summary
GL_INTERFACE record counts by STATUS: NEW, ERROR, PROCESSED. Error counts by SOURCE and LEDGER. Oldest pending interface group. Groups with mixed valid/invalid records.
Account Validation
CCID validation for every interface record. ACCOUNT_SEGMENT value lookup in GL_CODE_COMBINATIONS. Segment value set validity. Detail vs. summary account check.
Period Validation
Journal period against GL_PERIOD_STATUSES. Closed or never-opened periods. Future periods beyond the configurable open future periods limit.
Journal Balance
Debit vs. credit balance per journal group. Unbalanced intercompany entries. Rounding differences exceeding system tolerance. Control total mismatches.
Source and Category
Journal source active status in GL_JE_SOURCES. Journal category active status in GL_JE_CATEGORIES. Source/category combination allowed flag.
Orphaned Records
Records where GROUP_ID references a non-existent group. Records in PROCESSED status with no journal header — indicating a prior failed run. Cleanup candidates.

What the Report Looks Like

Representative output showing the diagnostic running against a real-world scenario. The script identifies every condition, states the root cause, and generates the fix.

GL-01 — GL-01 Diagnostic Report
════════════════════════════════════════════════════════════
  ORACLE EBS R12 — GL JOURNAL IMPORT DIAGNOSTIC
════════════════════════════════════════════════════════════
  Group ID           : GL-IMP-2026-04481
  Journal Source     : Payables
  Ledger             : US Primary Ledger
  Case Number        : GL-481022
  Report Date        : 20-FEB-2026 08:30:14
════════════════════════════════════════════════════════════

[ SECTION 1 — INTERFACE ERROR SUMMARY ]
────────────────────────────────────────────────────────────
  Total Records      : 842
  Imported OK        : 798 records ✓
  Rejected           : 44 records in ERROR status
  Error Type 1       : INVALID_CCID — 44 records (CCID 88432)

[ SECTION 2 — ACCOUNT VALIDATION ]            STATUS: ✗ FAIL
────────────────────────────────────────────────────────────
  CCID               : 88432
  Account            : 01-500-7810-0000
  ENABLED_FLAG       : N ✗ — disabled 01-JAN-2026
  SUMMARY_FLAG       : N ✓
  Sources Affected   : Payables (44 records), Receivables (18 records), PO (6 records)
  ✗ FAIL: CCID 88432 disabled — 68 journal lines across 3 sources rejected

[ SECTION 3 — JOURNAL BALANCE ]               STATUS: ✓ PASS
────────────────────────────────────────────────────────────
  All group debits = credits once CCID issue resolved ✓

[ SECTION 4 — PERIOD STATUS ]                 STATUS: ✓ PASS
────────────────────────────────────────────────────────────
  FEB-2026 — OPEN for all source ledgers ✓

[ SECTION 5 — ORPHANED RECORDS ]              STATUS: ⚠ WARNING
────────────────────────────────────────────────────────────
  ⚠ 12 ERROR records older than 48 hours — from JAN-2026 batch

════════════════════════════════════════════════════════════
  DIAGNOSTIC SUMMARY
════════════════════════════════════════════════════════════
  ROOT CAUSE: CCID 88432 disabled during GL COA cleanup on 01-JAN-2026
  FIX: Re-enable CCID or remap all GL_INTERFACE lines to replacement CCID 99105
  68 records across AP, AR, PO affected — bulk remap available
════════════════════════════════════════════════════════════
  Backup Created  : CONS_BACKUP.GL_INTERFACE_481022 ✓
  Registry ID     : 4081
════════════════════════════════════════════════════════════

The Four-Layer Architecture in GL-01

1
Diagnostic Engine
Runs 40+ checks across GL_INTERFACE error summary by type and GROUP_ID, journal balance verification per group, account validation against GL_CODE_COMBINATIONS with active status and date range, period status per ledger, journal source and category existence, and orphaned ERROR record detection.
2
Backup Created
Before any interface record is modified, CONS_BACKUP.GL_INTERFACE_<case#> and GL_CODE_COMBINATIONS_<case#> are created and row counts verified.
3
Guided Data Fix
CCID remapping in GL_INTERFACE, GL date corrections, and balance adjustments are the primary direct-fix targets. GL-01 generates bulk remap scripts for all records referencing the same disabled CCID across multiple source systems. Journal Import resubmitted after correction.
4
KB Article Generated
Complete KB article generated — GROUP_ID, error type, CCID affected, sources impacted, fix applied, Journal Import resubmission result. Upload directly to your knowledge base.

Backup & Rollback for GL-01

Every table touched by GL-01 data fixes is backed up before the first UPDATE fires. Backup is verified by row count. One script restores the original state if needed.

Tables Backed Up — GL-01

CONS_BACKUP.GL_INTERFACE_<case#> CONS_BACKUP.GL_CODE_COMBINATIONS_<case#> CONS_BACKUP.GL_JE_HEADERS_<case#>

Backup happens before any DML. Script aborts if backup creation fails.

Pre-Flight Safety Guards

POSTED_FLAG = 'N'Required ✓
ACCOUNTING_EVENT_ID IS NULLRequired ✓
No active session lockChecked ✓
CONS_BACKUP schema accessibleVerified ✓

FIX_BACKUP_REGISTRY Entry

REGISTRY_ID<auto-generated>
CASE_NUMBER<consultant case#>
SOURCE_TABLE<table modified>
ROWS_BACKED_UP<row count>
BACKUP_VERIFIEDYES ✓
ROLLBACK_SQLStored as CLOB
STATUSACTIVE
ENVIRONMENTPRODUCTION

Auto-Generated Knowledge Base Article

This article is produced automatically at the end of every GL-01 execution — written from actual run output. No manual documentation required.

KB-GL-481022-001 · Script: GL-01
Journal Import INVALID_CCID — CCID 88432 Disabled Affecting 68 Records Across 3 Sources
GL Journal Import for GROUP_ID GL-IMP-2026-04481 rejected 44 of 842 records. CCID 88432 (01-500-7810-0000) disabled — affecting Payables (44), Receivables (18), and PO (6) interface records. 12 additional orphaned ERROR records from prior period also identified.
CCID 88432 was disabled during a GL Chart of Accounts cleanup on 01-JAN-2026. The account 01-500-7810-0000 was retired and replaced with 01-500-7820-0000 (CCID 99105). AutoAccounting rules in AR and the expense account defaults in AP were not updated before the cleanup ran.
GL_INTERFACE — REFERENCE1, CODE_COMBINATION_ID (68 records, CODE_COMBINATION_ID = 88432)
GL_CODE_COMBINATIONS — ENABLED_FLAG = N, END_DATE_ACTIVE (CCID 88432, disabled 01-JAN-2026)
GL_INTERFACE records bulk-remapped from CCID 88432 to CCID 99105 with full backup. Journal Import resubmitted — all 68 previously rejected records imported. AP AutoAccounting default and AR AutoAccounting rules updated to reference CCID 99105 going forward. 12 orphaned records cleared.
Before disabling any CCID, GL-03 cross-reference check should run to identify all open transactions and interface records referencing the CCID across all modules. CCID disablement should be coordinated with all module owners.
GLJournal ImportGL_INTERFACEINVALID_CCIDGL_CODE_COMBINATIONSCCID DisabledEBS R12.2

Most Common Issues Detected by GL-01

Error

Invalid Account Segment Values

Interface records with segment values that do not exist in the value set. GL-01 identifies the specific segment, value, and the value set maintenance path.

Error

Unbalanced Journal Group

Debit and credit totals do not match for a journal group. GL-01 calculates the exact out-of-balance amount and identifies which records need correction.

Error

Closed Period Journal Date

Interface records with accounting date in a closed or invalid period. GL-01 identifies the open period candidates and generates the date update fix.

Orphan

Stuck ERROR Records

Records stuck in ERROR status that have not been corrected and resubmitted. GL-01 provides the resubmit path and the parameter values for Journal Import program.

Tables & Views Examined

Table / ViewSchemaPurpose in Diagnostic
GL_INTERFACE GL Journal interface records — status, amounts, accounts
GL_CODE_COMBINATIONS GL Account CCID validation
GL_PERIOD_STATUSES GL Period open/closed for journal dates
GL_JE_SOURCES GL Journal source active status
GL_JE_CATEGORIES GL Journal category active status
GL_LEDGERS GL Ledger ID validation
FND_SEGMENT_ATTRIBUTE_VALUES FND Segment value validation
GL_JE_HEADERS GL Imported journal headers for orphan detection
Decision Framework

How Every Fix Decision Is Made

Before any data is modified in a production Oracle database, AP-01 walks through a four-stage decision process. Every condition identified by the diagnostic maps to exactly one resolution path.

1
First Option — Always
Can the front end fix this?

Oracle's own forms and concurrent programs are always the first option. If the condition can be corrected through Oracle's standard UI — a form, a concurrent program, a setup screen — that path is taken first. No consultant SQL required, no database risk, and the fix is fully supported by Oracle. The diagnostic identifies these conditions explicitly and states the exact front-end navigation path.

✓ Functional Fix
2
When Front End Is Not Available
Is a direct data fix safe to apply?

When the front-end path is unavailable or would require an unacceptable volume of manual steps, a direct fix is evaluated against explicit criteria. All of the following must be true before proceeding:

The fix mirrors exactly what Oracle's own code would have done if the underlying condition were corrected
All dependent tables have been identified and will be updated in the same transaction
The fix is fully reversible — a single INSERT from the backup table restores the original state
The environment patch level has been confirmed against the fix logic version
⚡ Direct Fix
3
Hard Stops — No Exceptions
Does this require Oracle Support?

Certain table areas are never touched directly, regardless of how well the underlying structure is understood. The diagnostic flags these conditions and generates the Service Request documentation:

XLA subledger tablesXLA_EVENTS, XLA_AE_HEADERS — incorrect changes corrupt the subledger audit trail in ways undetectable until period close fails or an auditor requests a reconciliation
Workflow engine tablesWF_ITEMS, WF_ITEM_ACTIVITY_STATUSES — ad-hoc DML can corrupt the workflow engine state instance-wide
Recurring conditions after a fix — indicates a code defect, not a data error. Documented and submitted as a Service Request with a reproducible test case
⚠ Oracle Support
4
For All Approved Direct Fixes
Backup → Execute → Verify → Document

A timestamped backup table is created and row-count verified before the first UPDATE fires. Explicit parameter confirmation is required — the script will not self-execute. After execution, a verification query confirms the expected state. A complete change record — rows affected, before and after values, database username, timestamp — is written to the FIX_BACKUP_REGISTRY and becomes the primary artifact in the knowledge base entry for this incident.

📋 Documented
Condition Identified Resolution Path Notes
INVALID_CCID — code combination disabled or end-dated Direct Fix GL-01 identifies the disabled CCID, the replacement active CCID, and generates a bulk remap of all GL_INTERFACE records with full backup. After remap, Journal Import is resubmitted for the corrected records.
Unbalanced journal group — debits ≠ credits in GROUP_ID Direct Fix GL-01 calculates the exact variance, identifies the line(s) causing the imbalance, and generates the balancing entry or correction. Explicit confirmation required before any balance adjustment is applied.
Closed period journal date — GL_DATE in closed period Direct Fix GL-01 identifies the next open period and updates GL_DATE in GL_INTERFACE with full backup. Controller authorization documented before execution.
Invalid journal source — not defined in GL_JE_SOURCES Functional First Define the journal source via General Ledger > Setup > Journal Sources. GL-01 identifies the source value in the interface record and the current defined sources for the ledger.
Summary account referenced — SUMMARY_FLAG = Y Direct Fix GL-01 identifies the summary account CCID and the correct detail account for the transaction. Remaps GL_INTERFACE records to the detail account with full backup.
Orphaned ERROR records older than 48 hours Direct Fix GL-01 identifies orphaned records, confirms they are not part of an active import run, and purges them with backup. Common after interrupted Journal Import runs.
Category not defined for the journal source Functional First Define the journal category via General Ledger > Setup > Journal Categories. GL-01 identifies the category value and the navigation path.
Ledger currency mismatch — foreign currency journal without conversion rate Direct Fix GL-01 identifies the currency, the journal date, and the missing rate. Updates GL_INTERFACE with the correct daily rate from GL_DAILY_RATES with full backup.
Safeguards

Nothing Executes Without a Safety Net

Before any data fix runs, the script verifies pre-flight conditions and creates a complete verified backup. If any check fails, the script aborts. There is no partial execution path.

Pre-Flight Checks — All Must Pass
POSTED_FLAG = 'N'
Will not modify a posted transaction under any circumstances
ACCOUNTING_EVENT_ID IS NULL
Will not modify rows with an active or pending XLA accounting event
No active database lock
Checks V$LOCK — will not proceed if another session holds a lock on target rows
CONS_BACKUP schema writable
Backup schema must be accessible before any DML is permitted
Explicit confirmation required
Script outputs a confirmation prompt — DML does not execute until consultant enters the case number as the execution parameter
Backup Methodology

Before the first UPDATE fires, the script creates a complete copy of every row to be modified. Tables are named CONS_BACKUP.<TABLE>_<CASE#> and persist permanently after execution.

GL_INTERFACE
GL_CODE_COMBINATIONS
GL_JE_HEADERS
Row count verified after backup creation. If backup fails for any reason the script aborts without executing any DML. Rollback is a single INSERT from the backup table. No reconstruction required.
GL-01 — Pre-Flight & Backup Verification
════════════════════════════════════════════════════════════
  PRE-FLIGHT SAFETY CHECK
════════════════════════════════════════════════════════════
  GROUP_ID           : GL-IMP-2026-04481
  Records in Scope   : 68 ERROR records
  CONS_BACKUP Schema : Accessible ✓
  Session Lock Check : No locks on GL_INTERFACE rows ✓
────────────────────────────────────────────────────────────
  ALL PRE-FLIGHT CHECKS PASSED
════════════════════════════════════════════════════════════
  Creating : CONS_BACKUP.GL_INTERFACE_481022
  Rows     : 68 rows backed up ✓ Verified
  Registry : FIX_BACKUP_REGISTRY — ID 4081 created ✓
────────────────────────────────────────────────────────────
  BACKUP COMPLETE
════════════════════════════════════════════════════════════
  Enter case number to confirm bulk CCID remap : 481022
  Confirmed. Remapping CCID 88432 → 99105...
════════════════════════════════════════════════════════════
Knowledge Base

Every Execution Produces a Record

The knowledge base article is generated automatically from the script's execution output. No manual documentation required. It becomes the institutional record — for the team, for auditors, and for every future engagement in the same environment.

Zero Manual Effort
Every field — environment, tables, before/after values, backup reference, root cause, prevention — is generated from actual execution output. Nothing is written by hand.
Patterns Surface Over Time
The first engagement produces findings. The third produces patterns. Recurring conditions that are invisible as individual incidents become obvious as knowledge base trends.
Survives Staff Turnover
The knowledge base is an institutional record of the Oracle environment. A new manager, a new DBA, or an external auditor can read exactly what happened, what was done, and what prevents recurrence.
KB-GL-481022-001
Journal Import INVALID_CCID — CCID 88432 Disabled Affecting 68 Records Across 3 Sources
EBS R12.2.10 · General Ledger
● RESOLVED
Symptom
GL Journal Import for GROUP_ID GL-IMP-2026-04481 rejected 44 of 842 records. CCID 88432 (01-500-7810-0000) disabled — affecting Payables (44), Receivables (18), and PO (6) interface records. 12 additional orphaned ERROR records from prior period also identified.
Root Cause
CCID 88432 was disabled during a GL Chart of Accounts cleanup on 01-JAN-2026. The account 01-500-7810-0000 was retired and replaced with 01-500-7820-0000 (CCID 99105). AutoAccounting rules in AR and the expense account defaults in AP were not updated before the cleanup ran.
Tables
GL_INTERFACE — REFERENCE1, CODE_COMBINATION_ID (68 records, CODE_COMBINATION_ID = 88432)
GL_CODE_COMBINATIONS — ENABLED_FLAG = N, END_DATE_ACTIVE (CCID 88432, disabled 01-JAN-2026)
Fix Applied
GL_INTERFACE records bulk-remapped from CCID 88432 to CCID 99105 with full backup. Journal Import resubmitted — all 68 previously rejected records imported. AP AutoAccounting default and AR AutoAccounting rules updated to reference CCID 99105 going forward. 12 orphaned records cleared.
Prevention
Before disabling any CCID, GL-03 cross-reference check should run to identify all open transactions and interface records referencing the CCID across all modules. CCID disablement should be coordinated with all module owners.
Tags
GLJournal ImportGL_INTERFACEINVALID_CCIDGL_CODE_COMBINATIONSCCID DisabledEBS R12.2

Oracle Documentation References

R12 Guide (PDF)Title & ChapterDetail
120glug.pdfOracle General Ledger User's Guide — Journal ImportJournal Import program, GL_INTERFACE table, and journal import troubleshooting
120glug.pdfOracle General Ledger User's Guide — JournalsManual journal entry, recurring journals, and mass allocations in EBS R12
120glug.pdfOracle General Ledger User's Guide — ReportingAccount analysis and trial balance reports for post-import reconciliation

Ready to Resolve This in Your Environment?

GL-01 is one of 65 diagnostic scripts covering every major Oracle EBS and Fusion module. William A. Green Consulting runs the script in your environment, applies guided data fixes, and builds the knowledge base that prevents the same issues from recurring.

Schedule a Discovery Call → ← View All 65 Scripts

See this script run autonomously — Oracle AI Platform →