Skip to content
JDE Reference

F4311

transactionAlso in JDE World

Purchase order detail - one row per PO line with item, branch, quantities, unit/extended costs, and the status flow

Fields

48 fields · 5 key

KeyFieldAliasDescriptionTypeLengthFlags
Primary keyPDKCOOKCOOCompany that owns the order-number sequence; part of the composite order keyString5
Primary keyPDDOCODOCOOrder numberNumeric8
Primary keyPDDCTODCTOOrder document type (e.g. OP purchase order, SO sales order)String2
Primary keyPDSFXOSFXOOrder suffix distinguishing multiple documents under one order numberString3
Primary keyPDLNIDLNIDOrder line number (3 implied decimals, e.g. 1.000)Numeric6
PDMCUMCUBranch/plant business unit; right-justified, space-padded to 12String12
PDCOCOCompany codeString5
PDOKCOOKCOCompany key of the originating orderString5
PDOORNOORNOrder number of the originating document this record came fromString8
PDOCTOOCTODocument type of the originating orderString2
PDRKCORKCOCompany key of the related orderString5
PDRORNRORNCross-referenced related order number (PO, SO, or work order)String8
PDRCTORCTODocument type of the related orderString2
PDAN8AN8Supplier address book numberNumeric8
PDSHANSHANShip-to address book numberNumeric8
PDANBYANBYBuyer address book numberNumeric8
PDITMITMShort internal item number - joins to F4101/F4102Numeric8
PDLITMLITMSecond item number, the long code users normally keyString25
PDAITMAITMThird item number (catalog or alternate identifier)String25
PDLOCNLOCNWarehouse storage locationString20
PDLOTNLOTNLot or serial numberString30
PDDSC1DSC1Line descriptionString30
PDLNTYLNTYLine type controlling G/L, inventory, and A/P-A/R interfacesString2
PDLTTRLTTRLast completed status in the order activity flowString3
PDNXTRNXTRNext expected status in the order activity flowString3
PDTRDJTRDJOrder/transaction dateNumeric6
PDDRQJDRQJRequested dateNumeric6
PDPDDJPDDJScheduled/promised delivery dateNumeric6
PDOPDJOPDJOriginal promised delivery dateNumeric6
PDADDJADDJActual date goods shipped or were deliveredNumeric6
PDDGLDGLGeneral ledger date the transaction posts toNumeric6
PDUOMUOMTransaction unit of measureString2
PDUORGUORGOrdered quantity in the transaction unit of measureNumeric15
PDUOPNUOPNOpen quantity not yet received or shippedNumeric15
PDURECURECQuantity received to dateNumeric15
PDUCHGUCHGQuantity currently on holdNumeric15
PDPRRCPRRCUnit cost in domestic currency (4 implied decimals)Numeric15
PDAEXPAEXPExtended price of the line in domestic currencyNumeric15
PDAOPNAOPNOpen amount remaining on the lineNumeric15
PDARECARECAmount received to dateNumeric15
PDACHGACHGAmount on holdNumeric15
PDECSTECSTExtended cost (quantity x unit cost) in domestic currencyNumeric15
PDCRCDCRCDTransaction currency codeString3
PDCRRCRRCurrency conversion spot rate; implied decimals vary by setupNumeric15
PDFRRCFRRCUnit cost in foreign currencyNumeric15
PDFECFECExtended cost in foreign currencyNumeric15
PDGLCGLCG/L offset class used to derive distribution accountsString4
PDCORDCORDChange order sequence numberNumeric3

Field provenance: hand-curated.

Boilerplate SQL

Starting point for reading F4311on 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.

Query parameters
-- ============================================================
-- Table  : F4311 Purchase order detail - one row per PO line with item, branch, quantities, unit/extended costs, and the status flow
-- Purpose: Column-selected read of F4311 — auto-generated from field metadata
-- Grain  : One row per PDKCOO + PDDOCO + PDDCTO + PDSFXO + PDLNID
-- 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.PDKCOO AS "Company that owns the order-number sequence; part of the composite order key",
  d.PDDOCO AS "Order number",
  d.PDDCTO AS "Order document type (e.g. OP purchase order, SO sales order)",
  d.PDSFXO AS "Order suffix distinguishing multiple documents under one order number",
  d.PDLNID / POWER(10, 3) AS "Order line number (3 implied decimals, e.g. 1.000)",  -- implied decimals: 3 (verify in F9210)
  TRIM(d.PDMCU) AS "Branch/plant business unit; right-justified, space-padded to 12",
  d.PDCO AS "Company code",
  d.PDOKCO AS "Company key of the originating order",
  d.PDOORN AS "Order number of the originating document this record came from",
  d.PDOCTO AS "Document type of the originating order",
  d.PDRKCO AS "Company key of the related order",
  d.PDRORN AS "Cross-referenced related order number (PO, SO, or work order)",
  d.PDRCTO AS "Document type of the related order",
  d.PDAN8 AS "Supplier address book number",
  d.PDSHAN AS "Ship-to address book number",
  d.PDANBY AS "Buyer address book number",
  d.PDITM AS "Short internal item number - joins to F4101/F4102",
  d.PDLITM AS "Second item number, the long code users normally key",
  d.PDAITM AS "Third item number (catalog or alternate identifier)",
  d.PDLOCN AS "Warehouse storage location",
  d.PDLOTN AS "Lot or serial number",
  d.PDDSC1 AS "Line description",
  d.PDLNTY AS "Line type controlling G/L, inventory, and A/P-A/R interfaces",
  d.PDLTTR AS "Last completed status in the order activity flow",
  d.PDNXTR AS "Next expected status in the order activity flow",
  CASE WHEN d.PDTRDJ IS NULL OR d.PDTRDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.PDTRDJ AS INT) DIV 1000, 1, 1), CAST(d.PDTRDJ AS INT) % 1000 - 1) END AS "Order/transaction date",  -- CYYDDD Julian → DATE
  CASE WHEN d.PDDRQJ IS NULL OR d.PDDRQJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.PDDRQJ AS INT) DIV 1000, 1, 1), CAST(d.PDDRQJ AS INT) % 1000 - 1) END AS "Requested date",  -- CYYDDD Julian → DATE
  CASE WHEN d.PDPDDJ IS NULL OR d.PDPDDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.PDPDDJ AS INT) DIV 1000, 1, 1), CAST(d.PDPDDJ AS INT) % 1000 - 1) END AS "Scheduled/promised delivery date",  -- CYYDDD Julian → DATE
  CASE WHEN d.PDOPDJ IS NULL OR d.PDOPDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.PDOPDJ AS INT) DIV 1000, 1, 1), CAST(d.PDOPDJ AS INT) % 1000 - 1) END AS "Original promised delivery date",  -- CYYDDD Julian → DATE
  CASE WHEN d.PDADDJ IS NULL OR d.PDADDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.PDADDJ AS INT) DIV 1000, 1, 1), CAST(d.PDADDJ AS INT) % 1000 - 1) END AS "Actual date goods shipped or were delivered",  -- CYYDDD Julian → DATE
  CASE WHEN d.PDDGL IS NULL OR d.PDDGL = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(d.PDDGL AS INT) DIV 1000, 1, 1), CAST(d.PDDGL AS INT) % 1000 - 1) END AS "General ledger date the transaction posts to",  -- CYYDDD Julian → DATE
  d.PDUOM AS "Transaction unit of measure",
  d.PDUORG AS "Ordered quantity in the transaction unit of measure",
  d.PDUOPN AS "Open quantity not yet received or shipped",
  d.PDUREC AS "Quantity received to date",
  d.PDUCHG AS "Quantity currently on hold",
  d.PDPRRC / POWER(10, 4) AS "Unit cost in domestic currency (4 implied decimals)",  -- implied decimals: 4 (verify in F9210)
  d.PDAEXP / POWER(10, 2) AS "Extended price of the line in domestic currency",  -- implied decimals: 2 (verify in F9210)
  d.PDAOPN / POWER(10, 2) AS "Open amount remaining on the line",  -- implied decimals: 2 (verify in F9210)
  d.PDAREC / POWER(10, 2) AS "Amount received to date"  -- implied decimals: 2 (verify in F9210)
  -- … plus 8 more columns — full list in the Fields section above
FROM <catalog>.<schema_data>.f4311 d
WHERE
  d.PDKCOO = '<KCOO>'
  -- AND d.PDDOCO = <DOCO>
  -- AND d.PDDCTO = '<DCTO>'
  -- AND d.PDTRDJ >= <TRDJ_FROM>  -- Julian CYYDDD, e.g. 126001
  -- AND d.PDTRDJ <= <TRDJ_TO>  -- Julian CYYDDD, e.g. 126365
ORDER BY d.PDKCOO;

7 parameters not filled: <catalog>, <schema_data>, <KCOO>, <DOCO>, <DCTO>, <TRDJ_FROM>, <TRDJ_TO>

Relationships

1-hop neighbors — click a table to navigate there. UDC decode edges point coded fields at their F0005 lookup.

Join details

  • F4301F4311header detail · 1:N
    ON f4301.PHDOCO = f4311.PDDOCO
  • F4311F43199history · 1:N
    ON f4311.PDDOCO = f43199.OLDOCO
  • F43121F4311foreign key · N:1
    ON f43121.PRDOCO = f4311.PDDOCO
  • F4311F0401foreign key · N:1
    ON f4311.PDAN8 = f0401.A6AN8
  • F4311F4101foreign key · N:1
    ON f4311.PDITM = f4101.IMITM
  • F4311F0101foreign key · N:1
    ON f4311.PDAN8 = f0101.ABAN8
  • F4311F0005UDC decode · N:1
    ON f4311.PDDCTO = f0005.DRKY
  • F4311F0005UDC decode · N:1
    ON f4311.PDLTTR = f0005.DRKY

Programs That Use This Table