FND_USER — END_DATE = 15-FEB-2026 (DAVIDSON — inactive)
PER_ALL_ASSIGNMENTS_F — SUPERVISOR_ID (J.Martinez — still pointing to R.Davidson)
Workflow item status, stuck notifications, approver account validation, AME rule setup, position hierarchy gaps, timeout analysis, and notification mailer delivery status.
Oracle EBS PO approval workflow failures are among the most operationally disruptive issues in the Procure-to-Pay cycle. When a Purchase Order is submitted for approval, Oracle launches a workflow process instance in the WF_ITEMS table. The workflow routes the approval notification through a hierarchy of approvers defined in the Position Hierarchy or Supervisor Hierarchy, and each approver receives an FYI or Action Required notification in their Oracle Workflow worklist. If the workflow stalls — because an approver's account is inactive, the notification mailer is down, or the approval hierarchy has a gap — the PO sits in IN PROCESS status indefinitely, blocking purchasing activity.
Inactive approver accounts are the most common workflow stall cause. When an approver leaves the organization and their Oracle account is end-dated, any workflow notifications in their queue become orphaned — no one receives them, and the workflow engine does not automatically reroute to an alternate approver unless an escalation rule is configured. PO-02 identifies every active WF_NOTIFICATIONS record in an approver's queue and cross-references the approver's HR record to confirm whether the account is still active.
The approval hierarchy gap is the second major failure mode. Oracle EBS PO approval routing uses either the Position Hierarchy or the Employee/Supervisor Hierarchy defined in HR. When an employee's supervisor assignment is blank — because the employee was transferred and the new supervisor assignment was not entered in HR — the workflow cannot determine the next approver in the chain. The PO approval process terminates with an error and the PO status reverts to INCOMPLETE or stays stuck in IN PROCESS depending on the workflow version.
PO-02 runs a complete approval workflow diagnostic — WF_ITEMS status for the PO approval process, active notifications in each approver's queue, approver account active status and HR supervisor assignment, approval limit validation against the PO amount, escalation rule configuration, notification mailer status, and the full approval history from WF_NOTIFICATION_ATTRIBUTES.
PO-02 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 APPROVAL WORKFLOW DIAGNOSTIC
════════════════════════════════════════════════════════════
PO Number : PO-2026-004520
Amount : $84,200
Submitted : 18-FEB-2026 09:30:00
Case Number : PO-492810
Report Date : 22-FEB-2026 14:20:15
════════════════════════════════════════════════════════════
[ SECTION 1 — WORKFLOW ITEM STATUS ] STATUS: ⚠ STALLED
────────────────────────────────────────────────────────────
WF Item Key : 4481-PO_APPROVAL
Item Status : ACTIVE — 4 days, 4 hrs, 50 min ⚠
Current Activity : PO_APPROVE_LIST_APPROVE_MAIN
Current Approver : R.DAVIDSON — account INACTIVE since 15-FEB-2026 ✗
✗ FAIL: Current approver account inactive — notification stranded
[ SECTION 2 — APPROVAL HIERARCHY ] STATUS: ✗ FAIL
────────────────────────────────────────────────────────────
Requester : J.MARTINEZ — Supervisor: R.DAVIDSON
R.DAVIDSON : INACTIVE — end-dated 15-FEB-2026 ✗
Next Level : P.CHEN — $200,000 limit — Active ✓
✗ FAIL: Approval chain broken at R.DAVIDSON — no rerouting configured
[ SECTION 3 — APPROVAL LIMIT ] STATUS: ✓ PASS
────────────────────────────────────────────────────────────
P.CHEN approval limit $200,000 exceeds PO $84,200 ✓
[ SECTION 4 — NOTIFICATION MAILER ] STATUS: ✓ PASS
────────────────────────────────────────────────────────────
WF Notification Mailer running ✓
════════════════════════════════════════════════════════════
DIAGNOSTIC SUMMARY
════════════════════════════════════════════════════════════
APPROVAL STALLED — R.DAVIDSON inactive, notification stranded 4 days
FIX: Reassign notification to P.CHEN or update J.MARTINEZ supervisor to P.CHEN
════════════════════════════════════════════════════════════
Every table touched by PO-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.
Backup happens before any DML. Script aborts if backup creation fails.
This article is produced automatically at the end of every PO-02 execution — written from actual run output. No manual documentation required.
The most common PO approval failure. Approver account end-dated during offboarding while notifications remain in their queue. PO-02 identifies the notification ID and the active approver to reassign to.
Employee's supervisor not assigned in HR — workflow cannot determine the next approver. PO approval terminates with an error. PO-02 identifies the employee record and the correct supervisor assignment.
PO amount exceeds the approver's authorization limit. Workflow routes to the next level but there may be no approver at the required limit. PO-02 calculates the required limit and identifies the correct approver.
Workflow notifications generated but not delivered — the mailer service is down. Approvers do not receive email notifications. PO-02 identifies the mailer status and the restart procedure.
| Table | Module | Purpose |
|---|---|---|
| WF_ITEMS | WF | Workflow process instance — status and duration |
| WF_ITEM_ACTIVITY_STATUSES | WF | Current activity node and waiting condition |
| WF_NOTIFICATIONS | WF | Active notifications — recipient, status, age |
| WF_NOTIFICATION_ATTRIBUTES | WF | Notification attributes — return reason, approval history |
| FND_USER | FND | Approver account active status and end-date |
| PER_ALL_ASSIGNMENTS_F | HR | Employee supervisor assignment |
| PO_HEADERS_ALL | PO | PO authorization status |
| PO_APPROVAL_LIST_HEADERS | PO | Approval list with limits per approver |
| PO_ACTION_HISTORY | PO | Complete approval action history |
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 |
|---|---|---|
| Inactive approver — notification stranded in inactive queue | Functional First | Use the Oracle Workflow Reassign Notification function to route the notification to the correct active approver. PO-02 identifies the notification ID and the next active approver in the hierarchy. |
| HR supervisor assignment missing — hierarchy gap | Functional First | Update the supervisor assignment in HR > People > Enter and Maintain. PO-02 identifies the employee record with the missing or incorrect supervisor and the correct supervisor to assign. |
| Approval limit insufficient — PO exceeds approver limit | Functional First | Increase the approver's authorization limit via Purchasing > Setup > Approval Authorizations, or resubmit the PO to a higher-level approver directly. PO-02 calculates the minimum limit required. |
| Notification mailer down — notifications not delivered | Functional First | Restart the Oracle Workflow Notification Mailer via the Workflow Manager in Oracle Applications Manager. PO-02 identifies the mailer service status and the queue depth. |
| PO stuck in IN PROCESS — no active notification | Oracle Support | When no active notification exists but WF_ITEMS shows ACTIVE, the workflow engine is in an inconsistent state. PO-02 documents the item key and activity status for the Oracle Support SR. |
| Escalation not configured — workflow never times out | Functional First | Configure escalation rules via Purchasing > Setup > Approval Groups. PO-02 identifies the workflow process and the escalation attribute that needs to be populated. |
| PO returned by approver — buyer needs to resubmit | Functional First | Buyer corrects the PO based on the return reason in the notification and resubmits. PO-02 identifies the return reason from WF_NOTIFICATION_ATTRIBUTES. |
| Duplicate approval notifications — PO submitted twice | Oracle Support | Duplicate WF_ITEMS for the same PO indicate a double-submission. PO-02 documents both item keys for Oracle Support — direct WF table cleanup is never performed. |
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. 2: Approval, Security, and Control | pp. 2-1 to 2-68: Position hierarchies, approval routing, approval authorization rules |
| 120poug.pdf | Oracle Purchasing User's Guide — Ch. 2: Workflow Options | pp. 1-83 to 1-88: Workflow options for PO approval and notification routing |
| 120poug.pdf | Oracle Purchasing User's Guide — Ch. 2: Submitting a Document for Approval | pp. 2-32 to 2-38: Approval submission, offline approvers, and mass forwarding |
PO-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.
See this script run autonomously — Oracle AI Platform →