/SAPAPO/MATKEY
masterGUID keyThe product master key table — the bridge between the internal product GUID every EWM table carries and the readable material number, with the base unit, weights, volumes, and shelf-life control
MATID here is the CHAR(22) compressed GUID, while /SCWM tables carry the RAW(16) form — the two encodings need conversion, not raw equality (see quirks #guid-keys)
The table name survives in embedded S/4HANA EWM even though the ERP material master (MARA) holds the basic data — MATKEY stays the GUID-to-number bridge EWM resolves through. /SCMB/TOENTITY carries both GUID encodings on one row, which is the clearest public evidence that the RAW16 and CHAR22 forms are the same value in different clothes.
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
Fields
14 fields · 2 key
14 fields.
| # | Field | Description | Type | Flags |
|---|---|---|---|---|
| 1 | MANDT | Client | CLNT(3) | Key |
| 2 | MATID | Internal product ID — the product GUID in its 22-character compressed form, not the RAW16 form the /SCWM tables carry | CHAR(22) | Key |
| 3 | MATNR | Product or material number — the readable identifier | CHAR(40) | |
| 4 | PRODUCT_TYPE | Product type classification | CHAR(2) | |
| 5 | LVORM | Deletion flag | CHAR(1) | |
| 6 | MEINS | Base unit of measure | UNIT(3) | |
| 7 | BRGEW | Gross weight per base unit | QUAN(13,3) | |
| 8 | NTGEW | Net weight per base unit | QUAN(13,3) | |
| 9 | GEWEI | Weight unit | UNIT(3) | |
| 10 | VOLUM | Volume per base unit | QUAN(13,3) | |
| 11 | VOLEH | Volume unit | UNIT(3) | |
| 12 | SHELF_LIFE_FLAG | Whether planning considers the product's shelf life | CHAR(1) | |
| 13 | SHELF_LIFE_DUR | Shelf life duration | DEC(11) | |
| 14 | IPRKZ | Period indicator for interpreting the shelf-life duration | CHAR(1) |
Field provenance: hand-curated. 2 key fields.
Boilerplate SQL
Starting point for reading the replicated copy of /SAPAPO/MATKEYon 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.
4 parameters not filled: <catalog>, <schema>, <client>, <MATID>
-- ============================================================
-- Table : /SAPAPO/MATKEY — The product master key table — the bridge between the internal product GUID every EWM table carries and the readable material number, with the base unit, weights, volumes, and shelf-life control
-- Purpose: Column-selected read of /SAPAPO/MATKEY — auto-generated from field metadata
-- Grain : One row per client + MATID
-- Caution: MATID here is the CHAR(22) compressed GUID, while /SCWM tables carry the RAW(16) form — the two encodings need conversion, not raw equality (see quirks #guid-keys)
-- Notes : Auto-generated skeleton for SAP EWM data replicated into your lakehouse — it reads the replicated copy, not the SAP database. Source table /SAPAPO/MATKEY; slashes aren't legal in unquoted Databricks identifiers, so replication targets conventionally land it as sapapo_matkey — adjust to your landing convention (see quirks #namespace-slashes). Timestamps flagged UTC are DEC(15) yyyymmddhhmmss values in UTC, not warehouse local time (#utc-timestamps).
-- ============================================================
SELECT
t.MANDT AS "Client",
t.MATID AS "Internal product ID — the product GUID in its 22-character compressed form, not the RAW16 form the /SCWM tables carry",
t.MATNR AS "Product or material number — the readable identifier",
t.PRODUCT_TYPE AS "Product type classification",
t.LVORM AS "Deletion flag",
t.MEINS AS "Base unit of measure",
t.BRGEW AS "Gross weight per base unit",
t.NTGEW AS "Net weight per base unit",
t.GEWEI AS "Weight unit",
t.VOLUM AS "Volume per base unit",
t.VOLEH AS "Volume unit",
t.SHELF_LIFE_FLAG AS "Whether planning considers the product's shelf life",
t.SHELF_LIFE_DUR AS "Shelf life duration",
t.IPRKZ AS "Period indicator for interpreting the shelf-life duration"
FROM <catalog>.<schema>.sapapo_matkey t
WHERE
t.MANDT = '<client>' -- client filter — drop on single-client systems
-- AND t.MATID = '<MATID>'
ORDER BY t.MATID;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_tworkst.MANDT = sapapo_matkey.MANDT AND scwm_tworkst.DLFT_PMAT = 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_binmat.MANDT = sapapo_matkey.MANDT AND scwm_binmat.MATID = 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_aqua.MANDT = sapapo_matkey.MANDT AND scwm_aqua.MATID = 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_huhdr.MANDT = sapapo_matkey.MANDT AND scwm_huhdr.PMAT_GUID = 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_ordim_o.MANDT = sapapo_matkey.MANDT AND scwm_ordim_o.MATID = 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_ordim_c.MANDT = sapapo_matkey.MANDT AND scwm_ordim_c.MATID = 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_ordim_l.MANDT = sapapo_matkey.MANDT AND scwm_ordim_l.MATID = 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 scdl_db_hu.MANDT = sapapo_matkey.MANDT AND scdl_db_hu.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 scdl_db_proci_i.MANDT = sapapo_matkey.MANDT AND scdl_db_proci_i.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 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 scdl_db_reqi.MANDT = sapapo_matkey.MANDT AND scdl_db_reqi.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 sapapo_matlwh.MANDT = sapapo_matkey.MANDT AND sapapo_matlwh.MATID = sapapo_matkey.MATID -- compressed CHAR(22) GUID equality — join as-isON sapapo_matlwhst.MANDT = sapapo_matkey.MANDT AND sapapo_matlwhst.MATID = sapapo_matkey.MATID -- compressed CHAR(22) GUID equality — join as-isON scwm_pvpakl.MANDT = sapapo_matkey.MANDT AND scwm_pvpakl.MATID = 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_pvpakc.MANDT = sapapo_matkey.MANDT AND scwm_pvpakc.MATID = 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 lime_pi_it_biz.MANDT = sapapo_matkey.MANDT AND lime_pi_it_biz.MATID = 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
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
More Master Data & Parties tables
- /SAPAPO/MATLWHWarehouse product — the warehouse-level settings for a product: putaway and stock-removal control, storage section and bin type indicators, stock determination, two-step picking relevance, and the slotting demand quantity
- /SAPAPO/MATLWHSTWarehouse product at storage-type level — the same product's parameters narrowed to one storage type: preferred section and bin type, maximum fixed bins, and the min/max/replenishment quantity set
- /SCMB/TOENTITYSupply chain unit header — the location object EWM resolves warehouse, door, and party GUIDs against, carrying the readable identifier, the time zone, and the geo-coordinates
- /SCWM/PNPAKHPackaging specification header — the packing recipe as an iPPE node, with its status, the time it was activated, its group, and the rounding limits that decide how demand quantities are rounded to whole packs
- /SCWM/PVPAKCPackaging specification content — what is packed at a level: the product, the quantity and unit, and the mixing rules that say whether different products or batches may share the pack
- /SCWM/PVPAKLPackaging specification element — one level of the packing recipe as an iPPE variant: what packaging material is used, how much of it, and whether the level creates a handling unit