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

GL Period Close Readiness Diagnostic

Master period close diagnostic — all subledger status (AP, AR, FA, PO, INV, PA), unposted journals, XLA accounting errors, intercompany imbalances, revaluation, and consolidation readiness.

PlatformOracle EBS R12.x
Input RequiredPeriod Name and Ledger Name
Diagnostic Checks60+
Data Sources15 Oracle tables
Fix Options4 guided fixes
Backup CreatedYes — Automatic

Why This Fails — and What It Costs

The Oracle EBS GL period close is the final reconciliation point for every transaction that occurred in the period — it closes the AP, AR, FA, Inventory, WIP, Projects, and Purchasing subledgers before the GL itself can be closed. Because the GL close depends on every subledger being in a clean state, a single unresolved condition in any module can block the GL close for the entire organization. The Controller who runs Close Period in General Ledger sees a single error message that the period cannot be closed — but the root cause may be in any one of eight subledger modules that each have their own unresolved conditions.

The most common GL close blocker is unposted journals — journal batches in GL_JE_BATCHES with a STATUS of 'U' (unposted) that were created during the period but never posted. These may be manual journals entered by the accounting team that were reviewed but not approved, subledger journals transferred from AP or AR that were not automatically posted, or adjusting entries entered late in the period. Oracle GL will not allow the period to close if any unposted journals exist with a GL date in the period, because those journals represent accounting entries that have not yet been reflected in the ledger balance.

Subledger transfer completeness is the second dimension. Before the GL period can close, all eight subledgers must confirm that their accounting entries for the period have been transferred to GL. This requires that AP has run Transfer to GL, AR has run Transfer to General Ledger, FA has run Create Journal Entries, Inventory has run Transfer Transactions to GL, WIP has run WIP Close, and Projects has run Distribute and Transfer to GL. GL-02 checks the transfer status for each subledger and identifies which ones have not completed their transfer for the current period.

GL-02 runs the most comprehensive diagnostic in the script library — 60+ checks covering GL period status across all ledgers and ledger sets, unposted journal count and amount by batch, XLA accounting event status across all subledger applications, subledger transfer status per module with the specific concurrent program to run for each, intercompany balancing status by balancing segment, revaluation completion status for foreign currency accounts, and translation status for consolidation ledgers. It produces a single prioritized close checklist.

What This Script Diagnoses

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

All Subledger Status
AP, AR, FA, PO, INV, PA, WIP period status and unaccounted item counts. SLA event error counts per module. Transfer to GL completion status for each subledger.
Unposted Journals
Journals in WORKING or SELECTED status not yet posted. Recurring journals not yet generated. Allocation journals pending approval. AutoPost criteria not yet triggered.
XLA Accounting Errors
All SLA events in ERROR status across all subledgers. Accounting event event type summary. XLA sweep configuration. Error correction and resubmission paths.
Intercompany Balancing
Intercompany journal imbalances by balancing segment. Missing due-to/due-from entries. Intercompany accounts not defined. Trading partner setup gaps.
Revaluation Status
Revaluation run completion for the current period. Unrevalued foreign currency account balances. Reversal journal existence in next period. Exchange rate availability.
Consolidation Readiness
Subsidiary close status. Translation completion. Consolidation workbench status. Elimination set run status. Mapping completeness for new accounts.

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-02 — GL-02 Diagnostic Report
════════════════════════════════════════════════════════════
  ORACLE EBS R12 — GL PERIOD CLOSE READINESS DIAGNOSTIC
════════════════════════════════════════════════════════════
  Period             : FEB-2026
  Ledger             : US Primary Ledger
  Case Number        : GL-492840
  Report Date        : 25-FEB-2026 17:00:08
════════════════════════════════════════════════════════════

[ SECTION 1 — GL PERIOD STATUS ]              STATUS: ✓ PASS
────────────────────────────────────────────────────────────
  FEB-2026 — OPEN — US Primary Ledger ✓
  FEB-2026 — OPEN — US Secondary Ledger ✓

[ SECTION 2 — UNPOSTED JOURNALS ]             STATUS: ✗ FAIL
────────────────────────────────────────────────────────────
  Unposted Batches   : 7 batches — $1,482,100 ✗
  Oldest Unposted    : 18-FEB-2026 — 7 days
  Sources            : Manual Journals (4), Payables (2), Fixed Assets (1)
  ✗ FAIL: 7 unposted journal batches must be posted or deleted

[ SECTION 3 — XLA ACCOUNTING ERRORS ]        STATUS: ✗ FAIL
────────────────────────────────────────────────────────────
  XLA ERROR Events   : 3 events — AP invoices 1998210, 1998445, 1998881 ✗
  ✗ FAIL: 3 XLA ERROR events must be resolved before GL close

[ SECTION 4 — SUBLEDGER TRANSFER STATUS ]
────────────────────────────────────────────────────────────
  Payables           : Transfer complete ✓
  Receivables        : Transfer complete ✓
  Fixed Assets       : Create Journal Entries NOT RUN ✗
  Inventory          : Transfer complete ✓
  Projects           : Distribute and Transfer — 12 transactions pending ⚠

[ SECTION 5 — INTERCOMPANY ]                  STATUS: ✓ PASS
[ SECTION 6 — REVALUATION ]                   STATUS: ⚠ NOT RUN
────────────────────────────────────────────────────────────
  ⚠ Revaluation not run for FEB-2026 — 4 foreign currency accounts

════════════════════════════════════════════════════════════
  CLOSE READINESS SUMMARY
════════════════════════════════════════════════════════════
  PERIOD CANNOT CLOSE — 4 blocking conditions
  1. Post or delete 7 unposted journal batches
  2. Resolve 3 XLA ERROR events in AP
  3. Run Create Journal Entries for Fixed Assets
  4. Complete Projects Distribute and Transfer for 12 transactions
  Advisory: Run Revaluation for 4 FX accounts
════════════════════════════════════════════════════════════

The Four-Layer Architecture in GL-02

1
Diagnostic Engine
Runs 60+ checks covering GL period status across all ledgers, unposted journal batch count and amounts, XLA accounting event status across all subledger applications, subledger transfer completeness per module, intercompany balancing by segment, revaluation status for FX accounts, and translation status for consolidation.
2
Backup Created
Before any journal or period data is modified, CONS_BACKUP.GL_JE_HEADERS_<case#>, GL_JE_BATCHES_<case#>, and GL_PERIOD_STATUSES_<case#> are created and row counts verified.
3
Guided Data Fix
Most GL close blockers resolve through Oracle standard concurrent programs — Post Journals, Create Accounting, Create Journal Entries for FA. GL-02 provides the exact program names and parameters. Direct fixes for journal header status corrections with full backup.
4
KB Article Generated
Complete KB article generated — period, blocking conditions, subledger status per module, resolution sequence, close completion confirmation. Upload directly to your knowledge base.

Backup & Rollback for GL-02

Every table touched by GL-02 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-02

CONS_BACKUP.GL_JE_HEADERS_<case#> CONS_BACKUP.GL_JE_BATCHES_<case#> CONS_BACKUP.GL_PERIOD_STATUSES_<case#> CONS_BACKUP.XLA_EVENTS_<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-02 execution — written from actual run output. No manual documentation required.

KB-GL-492840-001 · Script: GL-02
GL Period FEB-2026 Close Blocked — Unposted Journals, XLA Errors, FA and Projects Transfer Incomplete
Close Period for GL FEB-2026 failing. 7 unposted journal batches ($1.48M), 3 XLA ERROR events in AP, Fixed Assets Create Journal Entries not run, and 12 Projects transactions pending distribution.
Unposted journals: 4 manual adjustment batches awaiting Controller approval, 2 AP batches transferred but not auto-posted (posting option set to manual), 1 FA batch from a mid-period asset addition not posted. XLA errors: 3 AP invoices referencing disabled CCID 88432. FA: Create Journal Entries program was not submitted after the month-end depreciation run. Projects: 12 cost transactions not yet distributed.
GL_JE_BATCHES — STATUS = U (7 batches, FEB-2026)
XLA_EVENTS — EVENT_STATUS_CODE = ERROR (3 events, AP application)
FA_DEPRN_SUMMARY — DEPRN_RUN_DATE (last run: 20-FEB-2026, JE not created)
Controller posted 7 journal batches. AP XLA errors resolved via CCID remap (GL-01). FA Create Journal Entries run. Projects Distribute and Transfer run for 12 transactions. Revaluation run for 4 FX accounts. GL period closed 25-FEB-2026 18:22.
GL-02 should run at period day-minus-3 for all ledgers. FA Create Journal Entries should be scheduled immediately after monthly depreciation. Manual journal batches should have a 48-hour posting SLA. Projects distribution should run nightly.
GLPeriod CloseUnposted JournalsXLA EventsFixed AssetsProjectsSubledger TransferEBS R12.2

Most Common Issues Detected by GL-02

Critical

Subledger Transactions Not Transferred to GL

One or more subledgers have unaccounted items that have not been transferred to GL. GL-02 identifies the module, count, amount, and the Transfer to GL program parameters.

Critical

XLA Events in ERROR State

Accounting events failed during Create Accounting across modules. GL-02 provides a consolidated view of errors by module and the batch resubmission path.

Warning

Unposted Journals

Manual journals in WORKING status not yet posted. GL-02 identifies them by source, preparer, and amount. AutoPost criteria not met — configuration check included.

Warning

Intercompany Imbalance

Due-to/due-from entries do not balance across balancing segments. GL-02 calculates the exact imbalance by trading partner and the correcting entry.

Tables & Views Examined

Table / ViewSchemaPurpose in Diagnostic
GL_PERIOD_STATUSES GL Period status per module and ledger
GL_JE_HEADERS GL Journal header post status
GL_JE_BATCHES GL Journal batch status
XLA_EVENTS XLA SLA event errors across all modules
XLA_AE_HEADERS XLA Accounting header completion
AP_INVOICES_ALL AP AP unaccounted count
AR_CASH_RECEIPTS_ALL AR AR unposted receipts
FA_DEPRN_SUMMARY FA FA depreciation completion
PO_HEADERS_ALL PO PO encumbrance status
MTL_MATERIAL_TRANSACTIONS INV INV pending transactions
WIP_TRANSACTIONS WIP WIP uncosted transactions
PA_COST_DISTRIBUTION_LINES_ALL PA PA undistributed costs
GL_BALANCES GL Current GL balances for reconciliation
GL_CONSOLIDATION_SETS GL Consolidation run status
GL_TRANSLATION_STATUSES GL Translation completion status
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
Unposted journal batches — STATUS = U in GL_JE_BATCHES Functional First Post via General Ledger > Journals > Post, or submit the Post Journals concurrent program. GL-02 identifies each unposted batch with the source, category, amount, and the approver responsible for posting.
XLA events in ERROR — subledger accounting blocked Oracle Support XLA ERROR events are resolved at the source transaction level. GL-02 identifies the source application, event ID, and the transaction reference for each error. Direct DML on XLA tables is never performed.
Fixed Assets Create Journal Entries not run Functional First Submit Create Journal Entries for Fixed Assets concurrent program for the period and ledger. GL-02 provides the exact parameters and confirms whether depreciation has been run as a prerequisite.
Projects Distribute and Transfer not complete Functional First Submit the PRC: Distribute Labor Costs, PRC: Distribute Usage and Miscellaneous Costs, and PRC: Transfer Journal Entries to GL programs. GL-02 identifies the transaction count and cost amount pending distribution.
Inventory Transfer Transactions to GL not complete Functional First Submit the Transfer Transactions to General Ledger concurrent program for Inventory. GL-02 identifies unprocessed MTL_MATERIAL_TRANSACTIONS with no GL batch reference.
Revaluation not run — foreign currency balance accounts Functional First Submit the Revalue Balances concurrent program for each revaluation set. GL-02 identifies the FX accounts with non-zero balances in the current period that have not been revalued.
Intercompany imbalance — clearing account not zero Direct Fix GL-02 identifies the imbalanced intercompany segment values, calculates the exact variance, and generates the balancing journal entry with full backup. Controller authorization required before posting.
Period in FUTURE ENTRY status — not yet open Functional First Open the period via General Ledger > Setup > Open/Close periods. GL-02 identifies which ledger has the period in FUTURE ENTRY status and whether it is within the ledger's open period limit.
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_JE_HEADERS
GL_JE_BATCHES
GL_PERIOD_STATUSES
XLA_EVENTS
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-02 — Pre-Flight & Backup Verification
════════════════════════════════════════════════════════════
  PRE-FLIGHT SAFETY CHECK
════════════════════════════════════════════════════════════
  Period             : FEB-2026
  Ledger             : US Primary Ledger
  CONS_BACKUP Schema : Accessible ✓
  Session Lock Check : No locks detected ✓
────────────────────────────────────────────────────────────
  ALL PRE-FLIGHT CHECKS PASSED
════════════════════════════════════════════════════════════
  Creating : CONS_BACKUP.GL_JE_BATCHES_492840
  Rows     : 7 rows backed up ✓
  Creating : CONS_BACKUP.GL_PERIOD_STATUSES_492840
  Rows     : 4 rows backed up ✓
  Registry : FIX_BACKUP_REGISTRY — ID 4094 created ✓
────────────────────────────────────────────────────────────
  BACKUP COMPLETE
════════════════════════════════════════════════════════════
  Enter case number to confirm : 492840
  Confirmed.
════════════════════════════════════════════════════════════
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-492840-001
GL Period FEB-2026 Close Blocked — Unposted Journals, XLA Errors, FA and Projects Transfer Incomplete
EBS R12.2.10 · General Ledger
● RESOLVED
Symptom
Close Period for GL FEB-2026 failing. 7 unposted journal batches ($1.48M), 3 XLA ERROR events in AP, Fixed Assets Create Journal Entries not run, and 12 Projects transactions pending distribution.
Root Cause
Unposted journals: 4 manual adjustment batches awaiting Controller approval, 2 AP batches transferred but not auto-posted (posting option set to manual), 1 FA batch from a mid-period asset addition not posted. XLA errors: 3 AP invoices referencing disabled CCID 88432. FA: Create Journal Entries program was not submitted after the month-end depreciation run. Projects: 12 cost transactions not yet distributed.
Tables
GL_JE_BATCHES — STATUS = U (7 batches, FEB-2026)
XLA_EVENTS — EVENT_STATUS_CODE = ERROR (3 events, AP application)
FA_DEPRN_SUMMARY — DEPRN_RUN_DATE (last run: 20-FEB-2026, JE not created)
Fix Applied
Controller posted 7 journal batches. AP XLA errors resolved via CCID remap (GL-01). FA Create Journal Entries run. Projects Distribute and Transfer run for 12 transactions. Revaluation run for 4 FX accounts. GL period closed 25-FEB-2026 18:22.
Prevention
GL-02 should run at period day-minus-3 for all ledgers. FA Create Journal Entries should be scheduled immediately after monthly depreciation. Manual journal batches should have a 48-hour posting SLA. Projects distribution should run nightly.
Tags
GLPeriod CloseUnposted JournalsXLA EventsFixed AssetsProjectsSubledger TransferEBS R12.2

Oracle Documentation References

R12 Guide (PDF)Title & ChapterDetail
120glug.pdfOracle General Ledger User's Guide — Period CloseGL period status management, close prerequisites, and open/close procedures
120glug.pdfOracle General Ledger User's Guide — Journal ImportUnposted journal identification and GL_INTERFACE cleanup before period close
120poug.pdfOracle Purchasing User's Guide — Ch. 9: Receipt Accrualspp. 9-89 to 9-120: PO accrual reconciliation and period-end entries to GL

Ready to Resolve This in Your Environment?

GL-02 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 →