OOLINE
Prefix: OBtransactionThe customer order line — one row per ordered item with quantities across the ordered/delivered/invoiced flow, price, warehouse, and planned delivery date; the core sell-side transaction, joined to its header by ORNO
What the badges mean
- Prefix: MM
- Prefix: the table’s 2-character physical-column prefix (e.g.
MMonMITMAS) — every field alias on the table carries it. Join by matching aliases across tables, not full column names (see the quirks guide). - master
- Data class: what the table holds — master data, balances, transaction documents, code/reference tables, or history.
- Shared across companies
- The table carries no
CONO— rows aren’t partitioned per company (see the quirks guide). - Division-level
- The table carries
DIVI— rows are scoped below company to a division, one layer more granular thanCONOalone (see the quirks guide).
Header & line
OOLINE lines join back to their header OOHEAD — and the CONO — so a line never fans out across companies.
Fields
14 fields · 4 key
14 fields.
| Key | Field | Alias | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| Key | OBCONO | CONO | Company | numeric | ||
| Key | OBORNO | ORNO | Customer order number | alphanumeric | ||
| Key | OBPONR | PONR | Order line number | numeric | ||
| Key | OBPOSX | POSX | Line suffix — subdivides a line when it is split (e.g. partial deliveries) | numeric | ||
| OBORST | ORST | Line status — two independent numerals, lowest and furthest degree of processing, so mixed pairs like 46 mean partly picked, partly delivered | alphanumeric | |||
| OBITNO | ITNO | Item ordered | alphanumeric | |||
| OBORQT | ORQT | Ordered quantity in the basic unit | numeric | |||
| OBDLQT | DLQT | Delivered quantity so far | numeric | |||
| OBIVQT | IVQT | Invoiced quantity so far | numeric | |||
| OBSAPR | SAPR | Sales price per price unit on the line | numeric | |||
| OBWHLO | WHLO | Warehouse the line ships from | alphanumeric | |||
| OBDWDT | DWDT | Planned delivery date for the line | numeric | |||
| OBORQA | ORQA | Ordered quantity in the alternate (order) unit of measure — the basic-unit figure sits in ORQT alongside it | numeric | |||
| OBSAAM | SAAM | Line sales amount — divided by the ordered quantity it yields the unit base price | numeric |
Field provenance: hand-curated.
Boilerplate SQL
Starting point for reading OOLINE on Databricks — numeric YYYYMMDD dates are wrapped to NULL, verified status ladders are decoded, and the CONO anchor is in place. Set your Unity Catalog location, company, and filter values below; they’re substituted into the SQL and the copy button.
6 parameters not filled: <catalog>, <schema>, <company>, <ORNO>, <DATE_FROM>, <DATE_TO>
-- ============================================================
-- Table : OOLINE — The customer order line — one row per ordered item with quantities across the ordered/delivered/invoiced flow, price, warehouse, and planned delivery date; the core sell-side transaction, joined to its header by ORNO
-- Purpose: Column-selected read of OOLINE — auto-generated from field metadata
-- Grain : One row per company (CONO) + OBORNO + OBPONR + OBPOSX
-- Notes : Auto-generated skeleton for a prefixed physical M3 schema or a landing schema normalized to the prefixed names in this catalog. Raw Data Lake property names vary with the published object: map them through Data Catalog before running this SQL. Dates are numeric YYYYMMDD (0 = none, mapped to NULL); all curated status values are decoded inline. Audit columns (RGDT/RGTM/LMDT/CHNO/CHID) omitted — see the quirks guide.
-- ============================================================
SELECT
ol.OBCONO AS "Company",
ol.OBORNO AS "Customer order number",
ol.OBPONR AS "Order line number",
ol.OBPOSX AS "Line suffix — subdivides a line when it is split (e.g. partial deliveries)",
CASE ol.OBORST WHEN '05' THEN 'Quotation' WHEN '10' THEN 'Preliminary' WHEN '22' THEN 'Left to allocate' WHEN '23' THEN 'Partially allocated' WHEN '24' THEN 'Partly to allocate, partly on printed picking list' WHEN '26' THEN 'Partly to allocate, partly delivered' WHEN '27' THEN 'Partly to allocate, partly invoiced' WHEN '33' THEN 'Allocated' WHEN '34' THEN 'Allocated, partly on printed picking list' WHEN '36' THEN 'Allocated, partly delivered' WHEN '37' THEN 'Allocated, partly invoiced' WHEN '44' THEN 'Picking list printed' WHEN '46' THEN 'Picking list printed, partly delivered' WHEN '47' THEN 'Picking list printed, partly invoiced' WHEN '66' THEN 'Delivered' WHEN '67' THEN 'Delivered, partly invoiced' WHEN '77' THEN 'Invoiced' WHEN '99' THEN 'Completed without delivery' ELSE ol.OBORST END AS "Line status — two independent numerals, lowest and furthest degree of processing, so mixed pairs like 46 mean partly picked, partly delivered", -- status: ORST_LINE (all 18 curated values)
ol.OBITNO AS "Item ordered",
ol.OBORQT AS "Ordered quantity in the basic unit",
ol.OBDLQT AS "Delivered quantity so far",
ol.OBIVQT AS "Invoiced quantity so far",
ol.OBSAPR AS "Sales price per price unit on the line",
ol.OBWHLO AS "Warehouse the line ships from",
CASE WHEN ol.OBDWDT = 0 THEN NULL ELSE TO_DATE(CAST(CAST(ol.OBDWDT AS BIGINT) AS STRING), 'yyyyMMdd') END AS "Planned delivery date for the line", -- YYYYMMDD, 0 → NULL
ol.OBORQA AS "Ordered quantity in the alternate (order) unit of measure — the basic-unit figure sits in ORQT alongside it",
ol.OBSAAM AS "Line sales amount — divided by the ordered quantity it yields the unit base price"
FROM <catalog>.<schema>.OOLINE ol
WHERE
ol.OBCONO = <company>
-- AND ol.OBORNO = '<ORNO>'
-- AND ol.OBDWDT >= <DATE_FROM> -- yyyyMMdd numeric
-- AND ol.OBDWDT <= <DATE_TO> -- yyyyMMdd numeric
ORDER BY ol.OBORNO;Verified September 2026
Relationships
Diagram of 1-hop neighbors — join details below. CSYTAB decode edges are highlighted; they’re the joins newcomers most often get wrong.
Join details
-- Uses this catalog's prefixed M3 column names; map raw Data Lake properties through Data Catalog first. ON OOHEAD.OAORNO = OOLINE.OBORNO AND OOHEAD.OACONO = OOLINE.OBCONO-- Uses this catalog's prefixed M3 column names; map raw Data Lake properties through Data Catalog first. ON OOLINE.OBITNO = MITMAS.MMITNO AND OOLINE.OBCONO = MITMAS.MMCONO-- Uses this catalog's prefixed M3 column names; map raw Data Lake properties through Data Catalog first. ON OOLINE.OBWHLO = MITWHL.MWWHLO AND OOLINE.OBCONO = MITWHL.MWCONO
Programs That Use This Table
- OIS100 — Customer order entry — creates and maintains customer orders, writing the OOHEAD/OOLINE pairInteractive
- OIS100MI — Customer order API — creates, reads, and maintains customer orders programmaticallyAPI
- OIS101 — Customer order line entry — the line-level screen reached from OIS100, where the OOLINE rows under an OOHEAD header are entered and changedPrimary sourceInteractive
- OIS300 — Customer order overview — the order-book view planners and customer service work fromInteractive
More Customer Orders tables
- OCUSMAThe customer master — one row per customer per company, with name and address, country, currency, and the default payment, delivery, and sales-rep terms new orders inherit
- OOHEADThe customer order header — one row per order, carrying the customer, order type, dates, and currency, plus the pair of status fields (lowest and highest line status) that summarize where the order's lines stand