Oracle Retail17 min readBy Priyanshu Pandey

EDI and Order Transmission Basics in RMS

Understand how Oracle RMS communicates with suppliers. A deep dive into EDI 850 (Purchase Orders), EDI 856 (ASNs), and EDI 810 (Invoices), and how RMS staging tables like EDI_ORD_DTT format data for external transmission.

Phase 4 · Purchasing · Oracle RMS Series

EDI & Order Transmission: How RMS Talks to Suppliers

Approving a Purchase Order in RMS doesn't magically alert the supplier. Orders must be extracted, formatted, and transmitted electronically. Learn how the EDI 850 outbound batch process works, the role of the EDI_ORD_DTT staging table, and how ASNs (EDI 856) flow back into the system.

17 min read📅August 8, 2026✍️Priyanshu Pandey📚Oracle RMS Series

In the modern retail supply chain, calling suppliers or faxing orders is obsolete. High-volume purchasing relies entirely on Electronic Data Interchange (EDI)—a standardized method for exchanging business documents between systems.

When a Purchase Order is approved in Oracle RMS, it must be extracted and transformed into an EDI 850 format. This guide breaks down the outbound order transmission architecture, the batch programs involved, and how inbound shipping data (EDI 856) flows back.



1. The Outbound EDI 850 Workflow

When a buyer clicks "Approve" on a PO, RMS sets ORDHEAD.STATUS = 'A'. However, the supplier is completely unaware of the order until the EDI transmission runs.

The edidlord Batch

The extraction of POs is handled by an RMS Pro*C batch program called edidlord.pc (EDI Download Orders).

  1. Selection: edidlord queries ORDHEAD for all orders where STATUS = 'A' and the supplier is configured to receive EDI (checked via SUP_TRAITS.EDI_ORDER_IND = 'Y').
  2. Translation: It gathers header data (ORDHEAD), location quantities (ORDLOC), item details (ORDSKU), and cost components.
  3. Staging: Instead of writing directly to a flat file, it populates intermediate staging tables (like EDI_ORD_DTT and EDI_ORD_HEAD).
  4. File Generation: A secondary translation tool (like Oracle B2B or a third-party EDI VAN) reads these staging tables, converts the data into the strict X12 EDI 850 format, and transmits it to the supplier.

First-Time Transmission vs. Revisions

If a PO is un-approved, revised, and re-approved, edidlord runs again. However, it sends an EDI 860 (Order Change) rather than a fresh 850. It does this by checking the REV_NO. If REV_NO > 0, it knows the supplier already has the base order and only sends the deltas.


2. EDI Staging Tables

Because strict EDI X12 formats are complex and vary slightly by region (e.g., EDIFACT in Europe), RMS does not hardcode the final output. Instead, it extracts the relational data into a flattened, easy-to-parse set of staging tables.

ℹ️

The Flatted View

The EDI_ORD_DTT (EDI Order Detail) table acts as a denormalized view of the PO. It contains the item, the location, the quantity, the unit cost, and the supplier's internal item number (VPN)—everything an external system needs to build a line item on an EDI 850.


3. Inbound ASNs (EDI 856)

Once the supplier packs the goods onto a truck, they transmit an Advance Shipment Notice (ASN) back to the retailer. This is the EDI 856 document.

An ASN tells RMS exactly what is on the truck, down to the specific carton barcode (SSCC-18).

The Inbound Flow

  1. The supplier's EDI VAN sends the EDI 856.
  2. A translation layer converts the 856 into the RIB payload format (e.g., ASNInDesc).
  3. The RIB publishes the message to RMS.
  4. RMS consumes the ASN and creates an Inbound Shipment record (SHIPMENT and SHIPSKU tables).
  5. The warehouse management system (WMS) now has visibility to the incoming truck, allowing them to schedule dock doors and prepare for receiving.
⚠️

Blind Receiving

If an ASN is delayed or fails to process, the warehouse must perform "Blind Receiving"—manually scanning and counting every item on the truck because they don't have the electronic packing slip. This drastically slows down warehouse operations.


4. Core Tables Reference

SUP_TRAITS
Supplier attributes. Determines if a supplier is capable of receiving EDI orders (EDI_ORDER_IND = 'Y').
EDI_ORD_HEAD
Staging table containing the header-level data for the outbound EDI 850.
EDI_ORD_DTT
Staging table containing the line-level item and location details for the outbound EDI 850.
SHIPMENT / SHIPSKU
The core RMS tables populated when an inbound EDI 856 (ASN) is processed.

EDI Order Staging (EDI_ORD_DTT)

ColumnTypeDescription
ORDER_NO
NUMBER(12)The RMS purchase order number.
ITEM
VARCHAR2(25)The RMS item number.
VPN
VARCHAR2(30)The Vendor Product Number (crucial for the supplier to identify the item).
LOCATION
NUMBER(10)The destination location.
QTY_ORDERED
NUMBER(12,4)The quantity to be shipped.
UNIT_COST
NUMBER(20,4)The agreed-upon unit cost for the EDI transmission.

5. SQL Deep Dives

Checking if a PO has been Staged for EDI

When a buyer complains that a supplier "never got the order," the first troubleshooting step is checking if RMS actually staged it.

Check EDI staging status
sql
SELECT 
    oh.order_no,
    oh.status,
    oh.supplier,
    st.edi_order_ind,
    eoh.edi_status, -- Usually 'N' (New), 'E' (Extracted), or 'P' (Processed)
    eoh.extract_date
FROM ordhead oh
JOIN sup_traits st ON oh.supplier = st.supplier
LEFT JOIN edi_ord_head eoh ON oh.order_no = eoh.order_no
WHERE oh.order_no = 998877;

Finding ASNs Linked to a PO

To see if the supplier has notified RMS that the goods are in transit:

Find ASNs for a PO
sql
SELECT 
    s.shipment,
    s.asn,
    s.status, -- 'I' (In Transit), 'R' (Received)
    s.est_arr_date,
    ss.item,
    ss.qty_expected
FROM shipment s
JOIN shipsku ss ON s.shipment = ss.shipment
WHERE s.order_no = 998877;

6. Common Gotchas

Important Gotchas

  • !

    Approving orders for Non-EDI Suppliers. If SUP_TRAITS.EDI_ORDER_IND = 'N', the edidlord batch will ignore the Approved PO completely. The PO will sit in RMS forever unless someone manually emails a PDF copy to the supplier.

  • !

    Missing VPNs (Vendor Product Numbers). RMS knows the item as 10012345, but the supplier knows it as XY-999. If the ITEM_SUPPLIER table is missing the VPN, the EDI 850 goes out with a blank identifier, and the supplier's ERP system will reject the order.

  • !

    ASN Quantity Mismatches. If the supplier transmits an ASN for 500 units, but the PO only has 400 units of STOCK_ON_ORDER left, the ASN message will fail in the RIB and drop to the hospital tables. Tolerances must be configured correctly to handle slight overages.

7. Key Takeaways

Key Takeaways

  • Approving a PO in RMS is only half the battle. The edidlord batch must extract the order and stage it for transmission via EDI 850.
  • RMS uses staging tables like EDI_ORD_HEAD and EDI_ORD_DTT to denormalize the PO data, making it easy for external EDI translation software to generate the strict X12 files.
  • Inbound ASNs (EDI 856) are critical for warehouse efficiency. They create SHIPMENT records in RMS, providing visibility into exactly what is on the inbound truck before it arrives.
  • Supplier configuration is paramount. If EDI_ORDER_IND is 'N', or if Vendor Product Numbers (VPNs) are missing, the electronic supply chain breaks down immediately.

8. Official Oracle Resources

For further reading, consult the official Oracle documentation:

RetailCoder
All systems operational
v1.0 Live

RC:OMS

Multi-channel order management with double-entry inventory ledger. Amazon, Flipkart, Shopify, WooCommerce — one source of truth.

Launch demo →
v1.0 Live

RC:Storefront

Self-hosted headless e-commerce. Your server, your data, zero transaction fees. Native RC:OMS inventory sync.

Visit Storefront →
Pipeline

RC:Pulse

AI-powered retail analytics and demand forecasting — built natively on top of your RC:OMS and Storefront data.

Request early access →
Built in India 🇮🇳  ·  Architected by Priyanshu PandeyTalk to an engineer →