Friday, 8 May 2026

Back-end Tables and Links in P2P Cycle

Mastering the Procure-to-Pay (P2P)


Technical Flow


Introduction

Understanding the Procure-to-Pay (P2P) cycle is the bread and butter of any

Oracle Functional or Technical Consultant. In 2026, real-time integration and sub-

ledger accuracy are more critical than ever. This guide maps the data DNA of the

entire process, from the initial Requisition to the final General Ledger entry.


1. Requisition

POR_REQUISITION_HEADERS_ALL

POR_REQUISITION_LINES_ALL

POR_REQ_DISTRIBUTIONS_ALL


2. Purchase Order

PO_HEADERS_ALL

PO_LINES_ALL

PO_LINE_LOCATIONS_ALL

PO_DISTRIBUTIONS_ALL


3. Receiving

RCV_SHIPMENT_HEADERS

RCV_SHIPMENT_LINES

RCV_TRANSACTIONS


4. Accounts Payable

AP_INVOICES_ALL

AP_INVOICE_LINES_ALL

AP_INVOICE_DISTRIBUTIONS_ALL


5. Payments

AP_PAYMENT_SCHEDULES_ALL

AP_INVOICE_PAYMENTS_ALL

IBY_PAYMENTS_ALL

IBY_PAY_SERVICE_REQUESTS


6. Sub-ledger Accounting (XLA)

XLA_TRANSACTION_ENTITIES

XLA_EVENTS

XLA_AE_HEADERS

XLA_AE_LINES

XLA_DISTRIBUTION_LINKS


7. General Ledger (GL)

GL_JE_BATCHES

GL_JE_HEADERS

GL_JE_LINES

GL_IMPORT_REFERENCES

GL_BALANCES

GL_CODE_COMBINATIONS


1. The Foundation: Requisition to PO

Everything starts with a need. The Requisition captures the "What" and "Why,"

which then matures into a "Purchase Order" (the legal contract).

Module Core Tables Primary Keys / Links

Requisition POR_REQUISITION_HEADERS_ALL

POR_REQUISITION_LINES_ALL

POR_REQ_DISTRIBUTIONS_ALL

REQUISITION_HEADER_ID

REQUISITION_LINE_ID


Purchase Order 

PO_HEADERS_ALL

PO_LINES_ALL

PO_LINE_LOCATIONS_ALL

PO_DISTRIBUTIONS_ALL


PO_HEADER_ID

PO_LINE_ID

LINE_LOCATION_ID


Interview Question: How do you link a Req to a PO?

PRL.REQUISITION_LINE_ID = POL.REQUISITION_LINE_ID (or via PO_LINE_LOCATIONS_ALL)


2. Fulfillment: Receiving

When the goods arrive, we record the physical movement. This is the bridge

between Procurement and Finance.

RCV_SHIPMENT_HEADERS: High-level receipt info (Packing slip, Vendor).

RCV_SHIPMENT_LINES: What exactly was received.

RCV_TRANSACTIONS: The history of the receipt (Receive, Deliver, Return).

Interview Question: Which table tracks the status of a receipt (e.g., Returned vs.

Delivered)?

Answer: RCV_TRANSACTIONS using the TRANSACTION_TYPE column.


3. The Liability: Accounts Payable (AP)

Now we owe money. AP matches the Invoice against the PO or the Receipt (2-

way, 3-way, or 4-way matching).

The Join:

RCV_TRANSACTIONS.TRANSACTION_ID =

AP_INVOICE_LINES_ALL.RCV_TRANSACTION_ID

4. Settlement: Payments (IBY)

The money leaves the bank. Oracle uses the "IBY" (Inquiry to Buy / Payments)

engine for the heavy lifting.

AP_INVOICE_PAYMENTS_ALL: Links the specific invoice to a check/

electronic payment.

IBY_PAYMENTS_ALL: The actual payment record in the payment engine.


5. The Accounting Engine: XLA & GL

The Sub-ledger Accounting (XLA) module is the most complex part of P2P. It

translates business events (like "Invoice Validated") into Journal Entries.

The XLA Hierarchy:

XLA_TRANSACTION_ENTITIES: Identifies the "Source" (AP_INVOICES).

XLA_EVENTS: The specific accounting event.

XLA_AE_HEADERS / LINES: The sub-ledger Journal Entry.


Final Bridge to GL:

XLA_AE_LINES.GL_SL_LINK_ID =

GL_IMPORT_REFERENCES.GL_SL_LINK_ID



No comments: