PO_HEADERS_ALL — CANCEL_FLAG = Y, AUTHORIZATION_STATUS = REQUIRES REAPPROVAL (3 POs)
Encumbrance journal status, funds available vs. committed analysis, over-encumbered distributions, reserve for encumbrance account setup, and year-end carry-forward completeness.
Oracle EBS Purchasing encumbrance accounting creates a reservation against budget funds at the moment a Purchase Order is approved — before the invoice is received or paid. This allows organizations to track committed spending against budget in real time. The encumbrance entry is recorded in GL_BC_PACKETS and reduces the available budget balance in GL_BALANCES. When the encumbrance process fails — either at PO approval (the funds reservation fails) or at invoice matching (the encumbrance relief does not happen) — the budget balance is either overstated (unfunded encumbrance) or understated (unreleased encumbrance from a cancelled PO).
Funds check failure at PO approval is the most visible encumbrance error. When a buyer submits a PO for approval and the online funds check rejects it with 'Insufficient funds available', the PO cannot be approved until either the budget is increased or the PO amount is reduced. The funds check evaluates the available balance in the budget organization assigned to the PO distribution's GL account. PO-04 identifies the specific budget organization, the budget account, the current available balance, and the PO amount that is attempting to consume it — giving the buyer and the budget manager the exact numbers needed to resolve the conflict.
Unreleased encumbrances from cancelled POs are the second major issue. When a PO is cancelled in Oracle, the system should automatically reverse the encumbrance entry via GL_BC_PACKETS and restore the budget balance. If the cancellation process is interrupted — or if the PO was in an intermediate approval state when it was cancelled — the encumbrance reversal may not have run. The result is a cancelled PO that still has an encumbrance balance consuming budget funds that are actually available. These phantom encumbrances accumulate over time and can artificially restrict budget availability.
PO-04 runs a complete encumbrance diagnostic — funds check status at approval, budget organization and account identification, available budget balance vs PO commitment, encumbrance reversal status for cancelled and finally closed POs, GL_BC_PACKETS packet status and amount, and period-end encumbrance reconciliation between GL_BC_PACKETS and GL_BALANCES.
PO-04 systematically investigates every major condition that can cause the issue this diagnostic targets. Below is the complete coverage breakdown.
Representative output showing the diagnostic running against a real-world scenario. The script identifies every condition, states the root cause, and generates the fix.
════════════════════════════════════════════════════════════
ORACLE EBS R12 — PO ENCUMBRANCE DIAGNOSTIC
════════════════════════════════════════════════════════════
PO Number : PO-2026-004590
Budget Org : US-OPERATIONS-BUDGET
Encumbrance Type : Purchase Order
Case Number : PO-514840
Report Date : 23-FEB-2026 11:20:45
════════════════════════════════════════════════════════════
[ SECTION 1 — FUNDS CHECK STATUS ] STATUS: ✗ FAIL
────────────────────────────────────────────────────────────
PO Amount : $142,000
Budget Account : 01-600-7200-0000 — IT Capital
Budget Balance : $138,400
Committed : $0 (no prior encumbrances)
Available : $138,400 — insufficient for $142,000 ✗
✗ FAIL: Funds check failure — $3,600 shortfall
[ SECTION 2 — PHANTOM ENCUMBRANCES ] STATUS: ⚠ WARNING
────────────────────────────────────────────────────────────
⚠ 3 cancelled POs with unreleased encumbrances found:
PO-2026-003841 : $28,400 encumbrance — PO cancelled 15-JAN-2026
PO-2026-003920 : $12,200 encumbrance — PO cancelled 20-JAN-2026
PO-2026-004010 : $18,100 encumbrance — PO cancelled 28-JAN-2026
Total Phantom : $58,700 — artificially reducing available budget
[ SECTION 3 — GL_BC_PACKETS STATUS ] STATUS: ✓ PASS
────────────────────────────────────────────────────────────
GL_BC_PACKETS balances reconcile to GL_BALANCES ✓
════════════════════════════════════════════════════════════
DIAGNOSTIC SUMMARY
════════════════════════════════════════════════════════════
Funds check failing due to $58,700 in phantom encumbrances from cancelled POs
FIX: Release phantom encumbrances — available balance becomes $197,100
════════════════════════════════════════════════════════════
Every table touched by PO-04 data fixes is backed up before the first UPDATE fires. Backup is verified by row count. One script restores the original state if needed.
Backup happens before any DML. Script aborts if backup creation fails.
This article is produced automatically at the end of every PO-04 execution — written from actual run output. No manual documentation required.
Insufficient budget balance blocks PO approval. Often caused by phantom encumbrances from cancelled POs artificially reducing available funds. PO-04 separates true budget shortfalls from phantom-encumbrance-driven failures.
PO cancelled in a non-APPROVED status bypasses the encumbrance reversal. Phantom encumbrance accumulates over time and can represent significant artificial budget consumption. PO-04 identifies and releases all phantom encumbrances.
AP invoice matched to PO but GL_BC_PACKETS relief entry not generated. PO encumbrance persists after payment, understating available budget. PO-04 generates the missing relief entry.
Encumbrance balance in GL_BC_PACKETS does not match the encumbrance account balance in GL_BALANCES. Period-end reconciliation failure. PO-04 calculates the exact variance and the correcting entry.
| Table | Module | Purpose |
|---|---|---|
| GL_BC_PACKETS | GL | Encumbrance packets — status, amount, PO reference |
| PO_HEADERS_ALL | PO | PO cancel flag and authorization status |
| PO_DISTRIBUTIONS_ALL | PO | Distribution — encumbrance amount, CCID |
| GL_BALANCES | GL | Budget and encumbrance account balances |
| GL_BUDGET_VERSIONS | GL | Budget organization and version |
| GL_PERIOD_STATUSES | GL | Budget period open/close status |
| AP_INVOICE_DISTRIBUTIONS_ALL | AP | Invoice distributions — encumbrance relief link |
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.
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.
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:
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_EVENTS, XLA_AE_HEADERS — incorrect changes corrupt the subledger audit trail in ways undetectable until period close fails or an auditor requests a reconciliationWF_ITEMS, WF_ITEM_ACTIVITY_STATUSES — ad-hoc DML can corrupt the workflow engine state instance-wideA 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.
| Condition Identified | Resolution Path | Notes |
|---|---|---|
| Phantom encumbrance — cancelled PO retains encumbrance | Direct Fix | PO-04 generates the GL_BC_PACKETS reversal entry for each phantom encumbrance with full backup and Controller authorization. Pre-flight confirms PO is CANCELLED before reversing. |
| Funds check failure — insufficient budget balance | Functional First | Increase the budget via Budget Entry or transfer funds between budget accounts via Journals. PO-04 identifies the exact shortfall amount and the budget account requiring the increase. |
| Encumbrance not reversed at invoice match | Direct Fix | PO-04 identifies the GL_BC_PACKETS rows that should have been reversed when the AP invoice was matched and generates the missing reversal with full backup and Controller authorization. |
| Duplicate encumbrance — PO encumbered twice | Direct Fix | PO-04 identifies the duplicate GL_BC_PACKETS entries and removes the duplicate with full backup. Pre-flight confirms the PO amount matches exactly one active encumbrance packet. |
| Budget period not open — encumbrance cannot post | Functional First | Open the budget period via General Ledger > Setup > Open/Close Periods for the budget organization. PO-04 identifies the period status and the GL period that must be open. |
| Encumbrance type not assigned to purchasing document type | Functional First | Assign the encumbrance type via Purchasing > Setup > Encumbrance. PO-04 identifies the document type and the missing encumbrance type assignment. |
| GL_BC_PACKETS out of balance with GL_BALANCES | Direct Fix | PO-04 calculates the exact variance and generates the reconciling GL_BC_PACKETS entry with full backup and Controller and auditor authorization. This is a period-end reconciliation correction. |
| Funds check override needed — business justification | Functional First | Enable funds check override for the specific budget account via General Ledger > Budgets > Budget Organization. PO-04 identifies the override parameter and the authorization level required. |
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.
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.
INSERT from the backup table. No reconstruction required.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.
References the Oracle public documentation for this diagnostic area. These links open directly on docs.oracle.com.
| R12 Guide (PDF) | Title & Chapter | Detail |
|---|---|---|
| 120poug.pdf | Oracle Purchasing User's Guide — Ch. 9: Accruals and Budgetary Control | pp. 9-89 to 9-120: Encumbrance accounting, funds reservation, and budgetary control |
| 120glug.pdf | Oracle General Ledger User's Guide — Budgetary Control | Budgetary control setup, funds check, and insufficient funds journal entries |
| 120apug.pdf | Oracle Payables User's Guide — Ch. 3: Budgetary Control in Payables | AP invoice funds check, encumbrance accounting, and final match |
PO-04 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.
See this script run autonomously — Oracle AI Platform →