F4211
transactionAlso in JDE WorldSales order detail — current sales lines, including completed lines retained by the site's purge processing options
Full document key: KCOO + DOCO + DCTO, plus LNID at line grain. Eligible lines move to F42119 only when configured sales-update/history purging runs; inspect R42800 processing options and the R42996 schedule. The rendered joins to F4201, F42119, and F42199 carry the DOCO leg only — add the company and type legs (F42199 also keys on update date/time, so a DOCO-only join multiplies by every revision). See the document-key quirk.
What the badges mean
- Superseded
- Superseded — a newer table has replaced it, but older scripts still read this one.
- Also in JDE World
- Also present in JDE World A9.x on the same table name.
- master
- Data class: what the table holds — master data, transaction documents, control/setup values, history, or a workfile.
- Read/write access
- Access mode: how the paired program reads or writes this table — R (read), W (write), or R/W (both).
Open + closed sales
At sales update, finished lines move out of F4211 into its history table F42119. To see all sales — open and closed — query F4211 UNION F42119. See the sales-history pattern
Fields
47 fields · 4 key
47 fields.
| Key | Field | Alias | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| Primary key | SDKCOO | KCOO | Order key company - disambiguates order numbers across companies | String | 5 | |
| Primary key | SDDOCO | DOCO | Order number | Numeric | 8 | |
| Primary key | SDDCTO | DCTO | Order type code (SO, ST, CO, ...) | String | 2 | |
| Primary key | SDLNID | LNID | Order line number, stored x1000 (3 implied decimals) | Numeric | 6 | |
| SDSFXO | SFXO | Order suffix, used to split partial shipments/invoices | String | 3 | ||
| SDMCU | MCU | Business unit / branch plant (right-justified, space-padded to 12) | String | 12 | ||
| SDCO | CO | Company the transaction belongs to | String | 5 | ||
| SDEMCU | EMCU | Header branch plant of the order (right-justified, space-padded) | String | 12 | ||
| SDOORN | OORN | Original order number when this order was generated from another | String | 8 | ||
| SDOCTO | OCTO | Original order type | String | 2 | ||
| SDRORN | RORN | Related order number (e.g. transfer or work order) | String | 8 | ||
| SDAN8 | AN8 | Sold-to customer address book number | Numeric | 8 | ||
| SDSHAN | SHAN | Ship-to address book number | Numeric | 8 | ||
| SDITM | ITM | Short item number - the internal numeric item key | Numeric | 8 | ||
| SDLITM | LITM | Second item number - the primary user-facing item code | String | 25 | ||
| SDAITM | AITM | Third item number - catalog or cross-reference item code | String | 25 | ||
| SDLOCN | LOCN | Storage location within the branch plant | String | 20 | ||
| SDLOTN | LOTN | Lot or serial number | String | 30 | ||
| SDDSC1 | DSC1 | Description line 1 | String | 30 | ||
| SDLNTY | LNTY | Line type controlling inventory/GL/AR interfaces (S, N, F, ...) | String | 2 | ||
| SDLTTR | LTTR | Last status the line has reached in the order activity flow | String | 3 | ||
| SDNXTR | NXTR | Next expected status in the order activity flow | String | 3 | ||
| SDTRDJ | TRDJ | Order/transaction date | Numeric (DD type: Date) | 6 | ||
| SDDRQJ | DRQJ | Date the customer requested the goods | Numeric (DD type: Date) | 6 | ||
| SDPDDJ | PDDJ | Scheduled pick date | Numeric (DD type: Date) | 6 | ||
| SDOPDJ | OPDJ | Original promised delivery date, kept for on-time measurement | Numeric (DD type: Date) | 6 | ||
| SDPPDJ | PPDJ | Currently promised ship date | Numeric (DD type: Date) | 6 | ||
| SDADDJ | ADDJ | Actual ship date | Numeric (DD type: Date) | 6 | ||
| SDIVD | IVD | Invoice date | Numeric (DD type: Date) | 6 | ||
| SDCNDJ | CNDJ | Date the order or line was canceled | Numeric (DD type: Date) | 6 | ||
| SDDGL | DGL | General ledger date the transaction posts to | Numeric (DD type: Date) | 6 | ||
| SDUOM | UOM | Unit of measure the transaction was entered in | String | 2 | ||
| SDUORG | UORG | Quantity ordered, in transaction UOM | Numeric | 15 | ||
| SDSOQS | SOQS | Quantity shipped | Numeric | 15 | ||
| SDSOBK | SOBK | Quantity backordered or on hold | Numeric | 15 | ||
| SDSOCN | SOCN | Quantity canceled | Numeric | 15 | ||
| SDAOPN | AOPN | Open amount not yet shipped/invoiced | Numeric | 15 | ||
| SDUPRC | UPRC | Unit price in domestic currency (4 implied decimals) | Numeric | 15 | ||
| SDAEXP | AEXP | Extended price in domestic currency | Numeric | 15 | ||
| SDUNCS | UNCS | Unit cost (4 implied decimals) | Numeric | 15 | ||
| SDECST | ECST | Extended cost in domestic currency | Numeric | 15 | ||
| SDCRCD | CRCD | Transaction (from) currency code | String | 3 | ||
| SDCRR | CRR | Currency conversion spot rate; implied decimals vary by setup | Numeric | 15 | ||
| SDFUP | FUP | Unit price in foreign (transaction) currency | Numeric | 15 | ||
| SDFEA | FEA | Extended price in foreign currency | Numeric | 15 | ||
| SDVR01 | VR01 | Reference field - commonly holds the customer PO number | String | 25 | ||
| SDGLC | GLC | G/L offset class the AAIs use to derive revenue/COGS accounts | String | 4 |
Field provenance: hand-curated.
Boilerplate SQL
Starting point for reading F4211 on Databricks — Julian dates, implied decimals, and padded strings are already converted. Set your Unity Catalog location and filter values below; they’re substituted into the SQL and the copy button.
7 parameters not filled: <catalog>, <schema_data>, <KCOO>, <DOCO>, <DCTO>, <TRDJ_FROM>, <TRDJ_TO>
-- ============================================================
-- Table : F4211 Sales order detail — current sales lines, including completed lines retained by the site's purge processing options
-- Purpose: Column-selected read of F4211 — auto-generated from field metadata
-- Grain : One row per SDKCOO + SDDOCO + SDDCTO + SDLNID
-- Notes : Auto-generated skeleton. Julian dates (CYYDDD) are converted to DATE and implied-decimal amounts are scaled (verify decimals in F9210); padded business-unit/UDC keys are TRIMmed. Audit columns (…USER/…PID/…UPMJ) are omitted — see the quirks guide. Set catalog/schema to your Unity Catalog location; fill remaining placeholders (<...>) for your tenant.
-- ============================================================
SELECT
d.SDKCOO AS "Order key company - disambiguates order numbers across companies",
d.SDDOCO AS "Order number",
d.SDDCTO AS "Order type code (SO, ST, CO, ...)",
d.SDLNID / POWER(10, 3) AS "Order line number, stored x1000 (3 implied decimals)", -- implied decimals: 3 (verify in F9210)
d.SDSFXO AS "Order suffix, used to split partial shipments/invoices",
TRIM(d.SDMCU) AS "Business unit / branch plant (right-justified, space-padded to 12)",
d.SDCO AS "Company the transaction belongs to",
TRIM(d.SDEMCU) AS "Header branch plant of the order (right-justified, space-padded)",
d.SDOORN AS "Original order number when this order was generated from another",
d.SDOCTO AS "Original order type",
d.SDRORN AS "Related order number (e.g. transfer or work order)",
d.SDAN8 AS "Sold-to customer address book number",
d.SDSHAN AS "Ship-to address book number",
d.SDITM AS "Short item number - the internal numeric item key",
d.SDLITM AS "Second item number - the primary user-facing item code",
d.SDAITM AS "Third item number - catalog or cross-reference item code",
d.SDLOCN AS "Storage location within the branch plant",
d.SDLOTN AS "Lot or serial number",
d.SDDSC1 AS "Description line 1",
d.SDLNTY AS "Line type controlling inventory/GL/AR interfaces (S, N, F, ...)",
d.SDLTTR AS "Last status the line has reached in the order activity flow",
d.SDNXTR AS "Next expected status in the order activity flow",
CASE WHEN d.SDTRDJ IS NULL OR d.SDTRDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.SDTRDJ AS INT) DIV 1000, 1, 1), CAST(d.SDTRDJ AS INT) % 1000 - 1) END AS "Order/transaction date", -- CYYDDD Julian → DATE
CASE WHEN d.SDDRQJ IS NULL OR d.SDDRQJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.SDDRQJ AS INT) DIV 1000, 1, 1), CAST(d.SDDRQJ AS INT) % 1000 - 1) END AS "Date the customer requested the goods", -- CYYDDD Julian → DATE
CASE WHEN d.SDPDDJ IS NULL OR d.SDPDDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.SDPDDJ AS INT) DIV 1000, 1, 1), CAST(d.SDPDDJ AS INT) % 1000 - 1) END AS "Scheduled pick date", -- CYYDDD Julian → DATE
CASE WHEN d.SDOPDJ IS NULL OR d.SDOPDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.SDOPDJ AS INT) DIV 1000, 1, 1), CAST(d.SDOPDJ AS INT) % 1000 - 1) END AS "Original promised delivery date, kept for on-time measurement", -- CYYDDD Julian → DATE
CASE WHEN d.SDPPDJ IS NULL OR d.SDPPDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.SDPPDJ AS INT) DIV 1000, 1, 1), CAST(d.SDPPDJ AS INT) % 1000 - 1) END AS "Currently promised ship date", -- CYYDDD Julian → DATE
CASE WHEN d.SDADDJ IS NULL OR d.SDADDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.SDADDJ AS INT) DIV 1000, 1, 1), CAST(d.SDADDJ AS INT) % 1000 - 1) END AS "Actual ship date", -- CYYDDD Julian → DATE
CASE WHEN d.SDIVD IS NULL OR d.SDIVD = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.SDIVD AS INT) DIV 1000, 1, 1), CAST(d.SDIVD AS INT) % 1000 - 1) END AS "Invoice date", -- CYYDDD Julian → DATE
CASE WHEN d.SDCNDJ IS NULL OR d.SDCNDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.SDCNDJ AS INT) DIV 1000, 1, 1), CAST(d.SDCNDJ AS INT) % 1000 - 1) END AS "Date the order or line was canceled", -- CYYDDD Julian → DATE
CASE WHEN d.SDDGL IS NULL OR d.SDDGL = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.SDDGL AS INT) DIV 1000, 1, 1), CAST(d.SDDGL AS INT) % 1000 - 1) END AS "General ledger date the transaction posts to", -- CYYDDD Julian → DATE
d.SDUOM AS "Unit of measure the transaction was entered in",
d.SDUORG AS "Quantity ordered, in transaction UOM",
d.SDSOQS AS "Quantity shipped",
d.SDSOBK AS "Quantity backordered or on hold",
d.SDSOCN AS "Quantity canceled",
d.SDAOPN / POWER(10, 2) AS "Open amount not yet shipped/invoiced", -- implied decimals: 2 (verify in F9210)
d.SDUPRC / POWER(10, 4) AS "Unit price in domestic currency (4 implied decimals)", -- implied decimals: 4 (verify in F9210)
d.SDAEXP / POWER(10, 2) AS "Extended price in domestic currency", -- implied decimals: 2 (verify in F9210)
d.SDUNCS / POWER(10, 4) AS "Unit cost (4 implied decimals)" -- implied decimals: 4 (verify in F9210)
-- … plus 7 more columns — full list in the Fields section above
FROM <catalog>.<schema_data>.f4211 d
WHERE
d.SDKCOO = '<KCOO>'
-- AND d.SDDOCO = <DOCO>
-- AND d.SDDCTO = '<DCTO>'
-- AND d.SDTRDJ >= <TRDJ_FROM> -- Julian CYYDDD, e.g. 126001
-- AND d.SDTRDJ <= <TRDJ_TO> -- Julian CYYDDD, e.g. 126365
ORDER BY d.SDKCOO;Verified September 2026
Relationships
Diagram of 1-hop neighbors — join details below. UDC decode edges point coded fields at their F0005 lookup.
Join details
ON f4201.SHDOCO = f4211.SDDOCOON f4211.SDDOCO = f42119.SDDOCOON f4211.SDAN8 = f0101.ABAN8ON f4211.SDITM = f4101.IMITMON TRIM(f4211.SDMCU) = TRIM(f0006.MCMCU)ON f0005.DRSY = '00' AND f0005.DRRT = 'DT' AND TRIM(f0005.DRKY) = TRIM(f4211.SDDCTO)ON f0005.DRSY = '40' AND f0005.DRRT = 'AT' AND TRIM(f0005.DRKY) = TRIM(f4211.SDLTTR)ON f0005.DRSY = '40' AND f0005.DRRT = 'AT' AND TRIM(f0005.DRKY) = TRIM(f4211.SDNXTR)ON f4211.SDDOCO = f42199.SLDOCOON f4074.ALDOCO = f4211.SDDOCOON f4942.ISDOCO = f4211.SDDOCOON f47012.SZDOCO = f4211.SDDOCO
Programs That Use This Table
R read · W write · R/W read + write
Primary programs
- P4205Shipment Confirmation — confirm that ordered goods have shipped, updating order lines and inventory commitmentsRead/write accessInteractive
- P4210Sales Order Entry — the interactive application that creates and maintains F4201/F4211 ordersWrite accessInteractive
- P42117Backorder Release — release backordered sales order lines when inventory becomes availableRead/write accessInteractive
- R42520Pick Slip Print — the batch job that produces warehouse pick documents and commits inventoryRead accessBatch UBE
- R42565Invoice Print — the batch job that generates customer invoices from sales order linesRead accessBatch UBE
- R42800Sales Update — books shipped orders to the G/L and A/R; processing options control whether eligible detail is copied to F42119 and purged from F4211Read/write accessBatch UBE
- R42995Repost Active Sales Orders — rebuild inventory commitments and open order totals when sales order and item location files disagreeRead/write accessBatch UBE
- R47131EDI Inbound Purchase Order Change Edit/Update — the batch processor that compares staged customer order changes (X12 860) against the open sales order, prints the discrepancy report, and advances or holds the order per its processing options; the change itself is applied in Sales Order Entry (P4210)Read/write accessBatch UBE
Secondary programs
- P4915Work With Shipments — the interactive workbench for reviewing, revising, routing, rating, and approving shipments after order entry creates themRead accessInteractive
- R3483Master Planning Schedule - Multiple Plant — the batch job that runs multifacility requirements planning, generating transfer-order messages and time series across a network of branch/plants.Read accessBatch UBE
- R47011EDI Inbound Purchase Order Edit/Create — the batch processor that turns customer purchase orders (X12 850) staged in the EDI interface tables into sales orders, with an audit report and Work Center errors for failed documentsWrite accessBatch UBE
- R47032EDI Advance Ship Notice Extraction — the batch job that extracts confirmed shipment data into the outbound 856 staging tables, writing one header row per shipment at the top hierarchy break plus the hierarchy lines beneath itRead accessBatch UBE
- R49115Transportation Bill of Lading — the batch print job that produces bill of lading documents for confirmed shipments, with options for delivery instructions and shipment attachmentsRead accessBatch UBE
- R4981Freight Update and Report — the batch job that finalizes freight after delivery confirmation: writes freight audit history, books payable freight accruals/vouchers, and adds billable freight charges to the customer's orderWrite accessBatch UBE
More Sales Order Management tables
- F42119Sales order detail history — eligible lines copied from F4211 by configured sales-update/history purging; same layout as F4211
- F42199Sales order detail ledger - writes a history row every time an F4211 line changes, so each line can appear many times keyed by update date/time
- F4201Sales order header — one row per order carrying customer, dates, totals, and shipping terms
- F4209Held orders file - one row per order or line currently or previously on hold, including who released it and when