/SCDL/DB_PROCI_O
transactionGUID keyDOCCAT: PDOOutbound delivery order item — the line grain outbound: product, quantity, entitled party, stock owner, and the picking and goods-issue statuses
The busiest join target in the reference: warehouse tasks (RDOCID/RITMID when RDOCCAT is outbound) and wave items both point here. STATUS_PICK and STATUS_GI are the two status columns most outbound service measures are built from.
What the badges mean
- master
- Data class: what the table holds — master data, transaction documents, configuration, an organizational object, or a language-striped text companion.
- Semantic key
- Every non-client key column is readable business data —
LGNUMplus a bin, task, or order number. Joins run on the columns you can see (see the quirks guide). - GUID key
- Every non-client key column is a GUID —
RAW(16)on the /SCWM, /SCDL, /LIME, and /SCMB tables, and theCHAR(22)compressed form on the product master. Join the raw column; a hex rendering is for reading only, and the two encodings need converting between (see the quirks guide). - Mixed key
- The key mixes readable and GUID columns in either direction — a product GUID inside an otherwise-readable bin key, or a readable status type inside an otherwise-GUID key. Check which side of a join you are on (see the quirks guide).
- DOCCAT: PDO
- A /SCDL delivery table holds several document categories in one table — inbound and outbound requests, the inbound delivery, the outbound delivery order, and the final outbound delivery — discriminated by
DOCCAT. The chips list the categories this table carries; anchor the one you mean or documents of every kind come back together (see the quirks guide). - Embedded S/4HANA only
- Deployment: shown only when a table does not exist in both embedded S/4HANA EWM and decentralized EWM. No table in this wave is deployment-specific, so the badge stays absent until one is.
Structural facts — how the table is keyed, not a trap by itself
Join & extract hazards — verify before you rely on this
Header & item
/SCDL/DB_PROCI_O items join back to their header /SCDL/DB_PROCH_O on the document key, so an item never fans out.
The /SCDL layer is shared: this table holds PDO (outbound delivery order) rows, and the generated SQL anchors DOCCAT to it. How DOCCAT works
Fields
18 fields · 3 key
18 fields.
| # | Field | Description | Type | Flags |
|---|---|---|---|---|
| 1 | MANDT | Client | CLNT(3) | Key |
| 2 | DOCID | Document GUID of the owning outbound delivery order header | RAW(16) | Key |
| 3 | ITEMID | Item GUID — the target of warehouse-task and wave-item references on the outbound side | RAW(16) | Key |
| 4 | DOCCAT | Document category | CHAR(3) | |
| 5 | DOCNO | Readable delivery order number, carried denormalized onto the item | CHAR(35) | |
| 6 | ITEMNO | Readable item number | NUMC(10) | |
| 7 | ITEMCAT | Item category | CHAR(3) | |
| 8 | ITEMTYPE | Item type | CHAR(4) | |
| 9 | PRODUCTID | Product GUID (RAW16 form) — note the name carries no underscore | RAW(16) | |
| 10 | PRODUCTNO | Readable product number | CHAR(40) | |
| 11 | QTY | Delivery item quantity | QUAN(31,14) | |
| 12 | UOM | Unit of measure of the item quantity | UNIT(3) | |
| 13 | CRETST | Item creation time | DEC(15) | UTCFilter date |
| 14 | ENTITLED | Party entitled to dispose | CHAR(10) | |
| 15 | STOCK_OWNER | Owner of the stock to be shipped | CHAR(10) | |
| 16 | STATUS_PICK | Picking status value of the item | CHAR(1) | |
| 17 | STATUS_GI | Goods issue status value of the item | CHAR(1) | |
| 18 | /SCWM/WHNO | Warehouse number stamped on the delivery item — a namespaced column name | CHAR(4) |
Field provenance: hand-curated. 3 key fields.
Boilerplate SQL
Starting point for reading the replicated copy of /SCDL/DB_PROCI_Oon Databricks — the client anchor is already in place, the namespaced name is rendered as the underscore bronze name replication targets conventionally land it under, and any RAW16 GUID column selects a hex rendering alongside the raw value. Set your Unity Catalog location, schema, and filter values below; they’re substituted into the SQL and the copy button.
7 parameters not filled: <catalog>, <schema>, <client>, <DOCID>, <ITEMID>, <TS_FROM>, <TS_TO>
-- ============================================================
-- Table : /SCDL/DB_PROCI_O — Outbound delivery order item — the line grain outbound: product, quantity, entitled party, stock owner, and the picking and goods-issue statuses
-- Purpose: Column-selected read of /SCDL/DB_PROCI_O — auto-generated from field metadata
-- Grain : One row per client + DOCID + ITEMID
-- Notes : Auto-generated skeleton for SAP EWM data replicated into your lakehouse — it reads the replicated copy, not the SAP database. Source table /SCDL/DB_PROCI_O; slashes aren't legal in unquoted Databricks identifiers, so replication targets conventionally land it as scdl_db_proci_o — adjust to your landing convention (see quirks #namespace-slashes). RAW16 GUID columns are joined raw; the hex aliases are for display only (#guid-keys). Timestamps flagged UTC are DEC(15) yyyymmddhhmmss values in UTC, not warehouse local time (#utc-timestamps).
-- ============================================================
SELECT
t.MANDT AS "Client",
t.DOCID AS "Document GUID of the owning outbound delivery order header",
lower(hex(t.DOCID)) AS "Document GUID of the owning outbound delivery order header (hex)", -- display rendering of the RAW16 GUID — join on the raw column; see quirks guide #guid-keys
t.ITEMID AS "Item GUID — the target of warehouse-task and wave-item references on the outbound side",
lower(hex(t.ITEMID)) AS "Item GUID — the target of warehouse-task and wave-item references on the outbound side (hex)", -- display rendering of the RAW16 GUID — join on the raw column; see quirks guide #guid-keys
t.DOCCAT AS "Document category",
t.DOCNO AS "Readable delivery order number, carried denormalized onto the item",
t.ITEMNO AS "Readable item number",
t.ITEMCAT AS "Item category",
t.ITEMTYPE AS "Item type",
t.PRODUCTID AS "Product GUID (RAW16 form) — note the name carries no underscore",
lower(hex(t.PRODUCTID)) AS "Product GUID (RAW16 form) — note the name carries no underscore (hex)", -- display rendering of the RAW16 GUID — join on the raw column; see quirks guide #guid-keys
t.PRODUCTNO AS "Readable product number",
t.QTY AS "Delivery item quantity",
t.UOM AS "Unit of measure of the item quantity",
t.CRETST AS "Item creation time", -- UTC
t.ENTITLED AS "Party entitled to dispose",
t.STOCK_OWNER AS "Owner of the stock to be shipped",
t.STATUS_PICK AS "Picking status value of the item",
t.STATUS_GI AS "Goods issue status value of the item",
t.`/SCWM/WHNO` AS "Warehouse number stamped on the delivery item — a namespaced column name" -- namespaced column — most replication targets rename it; see quirks guide #namespace-slashes
FROM <catalog>.<schema>.scdl_db_proci_o t
WHERE
t.MANDT = '<client>' -- client filter — drop on single-client systems
AND t.DOCCAT = 'PDO' -- document category — one /SCDL table holds every category; see quirks guide #doccat
-- AND t.DOCID = unhex('<DOCID>') -- pass the 32-character hex form
-- AND t.ITEMID = unhex('<ITEMID>') -- pass the 32-character hex form
-- AND t.CRETST >= <TS_FROM> -- UTC yyyymmddhhmmss — convert warehouse-local dates first (#utc-timestamps)
-- AND t.CRETST <= <TS_TO>
ORDER BY t.DOCID;Verified August 2026
Landing conventions differ — see namespaced names in a lakehouse.
Relationships
Diagram of 1-hop neighbors — join details below. GUID joins and text-table joins are highlighted; they’re the joins newcomers most often get wrong.
Join details
ON scwm_ordim_o.MANDT = scdl_db_proci_o.MANDT AND scwm_ordim_o.RDOCID = scdl_db_proci_o.DOCID AND scwm_ordim_o.RITMID = scdl_db_proci_o.ITEMID -- RAW16 GUID equality — join raw; hex is for display/conformance only · applies when RDOCCAT identifies an outbound delivery orderapplies when RDOCCAT identifies an outbound delivery order
ON scwm_ordim_c.MANDT = scdl_db_proci_o.MANDT AND scwm_ordim_c.RDOCID = scdl_db_proci_o.DOCID AND scwm_ordim_c.RITMID = scdl_db_proci_o.ITEMID -- RAW16 GUID equality — join raw; hex is for display/conformance only · applies when RDOCCAT identifies an outbound delivery orderapplies when RDOCCAT identifies an outbound delivery order
ON scwm_ordim_l.MANDT = scdl_db_proci_o.MANDT AND scwm_ordim_l.RDOCID = scdl_db_proci_o.DOCID AND scwm_ordim_l.RITMID = scdl_db_proci_o.ITEMID -- RAW16 GUID equality — join raw; hex is for display/conformance onlyON scwm_waveitm.MANDT = scdl_db_proci_o.MANDT AND scwm_waveitm.RDOCID = scdl_db_proci_o.DOCID AND scwm_waveitm.RITMID = scdl_db_proci_o.ITEMID -- RAW16 GUID equality — join raw; hex is for display/conformance onlyON scdl_db_proch_o.MANDT = scdl_db_proci_o.MANDT AND scdl_db_proch_o.DOCID = scdl_db_proci_o.DOCIDON scdl_db_dlvi_o.MANDT = scdl_db_proci_o.MANDT AND scdl_db_dlvi_o.REFDOCID = scdl_db_proci_o.DOCID AND scdl_db_dlvi_o.REFITEMID = scdl_db_proci_o.ITEMID -- RAW16 GUID equality — join raw; hex is for display/conformance only · the predecessor reference is not category-typed on the item — confirm through /SCDL/DB_REFDOC before treating it as the delivery orderthe predecessor reference is not category-typed on the item — confirm through /SCDL/DB_REFDOC before treating it as the delivery order
ON scdl_db_proci_o.MANDT = sapapo_matkey.MANDT AND scdl_db_proci_o.PRODUCTID = sapapo_matkey.MATID -- the /SCWM side is RAW(16) and MATKEY keys the CHAR 22 compressed form — convert before comparing; this is not a raw equalitythe /SCWM side is RAW(16) and MATKEY keys the CHAR 22 compressed form — convert before comparing; this is not a raw equality
ON scwm_tu_dlv.MANDT = scdl_db_proci_o.MANDT AND scwm_tu_dlv.DOCID = scdl_db_proci_o.DOCID AND scwm_tu_dlv.ITEMID = scdl_db_proci_o.ITEMID -- RAW16 GUID equality — join raw; hex is for display/conformance only · applies when DOCCAT identifies an outbound delivery orderapplies when DOCCAT identifies an outbound delivery order
Transaction codes that touch this table
Curated: the EWM transactions an analyst would trace back to these rows, and how each one touches them.
R read · W write · R/W read + write
- /SCWM/CANCPICKCancel picking — reverse picking work already created or confirmed for an outbound deliveryRead accessChangewarehouse-tasks
- /SCWM/PRDOMaintain the outbound delivery order — the document EWM plans, picks, and stages against before goods issueRead/write accessChangedelivery-processing
- /SCWM/TODLV_OCreate warehouse tasks for an outbound delivery order — the picking work behind a shipmentRead accessCreatewarehouse-tasks
- /SCWM/WAVEMaintain waves — group outbound delivery items into a release, then release them so warehouse tasks are createdRead accessChangewarehouse-tasks
More Delivery Processing (Warehouse Requests) tables
- /SCDL/DB_REFDOCReference documents — the bridge from an EWM delivery document to the document that caused it in the connected ERP system, with the readable reference number and item
- /SCDL/DB_REQHDelivery request header — the notification or request EWM received before the processing document existed, inbound (IDR) or outbound (ODR)
- /SCDL/DB_REQIDelivery request item — the line grain of the inbound notification or outbound request, with product, batch, quantity, and entitled party
- /SCDL/DB_STATUSDelivery status — the long, narrow status table every /SCDL document writes into, one row per document or item per status type with its value and validity window
- /SCDL/DB_DATEDelivery dates — the typed date table for the /SCDL layer, one row per document, item, schedule line, date type, and category, each carrying a from/to timestamp pair
- /SCDL/DB_DLVH_OFinal outbound delivery header — the document that exists after goods issue, carrying the shipped delivery's number, type, incoterms, sales organization, and the flags that mark corrections, pickups, and scrapping