Skip to content
JDE Reference

F3411

transactionAlso in JDE World

MRP action messages — one row per recommendation the planning run generates (order, expedite, defer, cancel, increase, decrease) for an item/branch; planners work this queue after each run

Notes

Regenerated by each MPS/MRP/DRP run for the items planned — unprocessed messages for a replanned item are cleared and rewritten, so message counts by type (34/MT) are a point-in-time signal of plan nervousness, not durable history. Snapshot it for trend analysis.

Fields

24 fields · 1 key

KeyFieldAliasDescriptionTypeLengthFlags
Primary keyMMUKIDUKIDInternal unique key — single-column primary key with no business meaningNumeric15
MMITMITMShort item number the message applies toNumeric8
MMMCUMCUBranch/plant the message was generated for — right-justified 12-characterString12
MMMMCUMMCUSupplying/demand branch on transfer-type messages — right-justified 12-characterString12
MMMSGTMSGTMessage type — the recommended action (order, expedite, defer, cancel, increase, decrease); the main slicer for message analyticsCharacter1
MMMSGAMSGAMessage action/control flag — whether the message has been processed, held, or clearedCharacter1
MMHCLDHCLDHold code on the messageCharacter1
MMKCOOKCOOOrder company of the referenced orderString5
MMDOCODOCOOrder number the message refers to — the WO or PO to expedite/defer/cancel; blank on new-order messages until processedNumeric8
MMDCTODCTOOrder type of the referenced orderString2
MMLNIDLNIDLine number of the referenced order line; 3 implied decimalsNumeric6
MMDSC1DSC1Message text shown to the plannerString30
MMTRQTTRQTQuantity the message recommends ordering or changingNumeric15
MMVENDVENDSuggested supplier for purchase-type messagesNumeric8
MMDRQJDRQJRequested/need date of the recommendation (Julian CYYDDD)Numeric6
MMSTRTSTRTStart date of the current order the message refers to (Julian CYYDDD)Numeric6
MMRSTJRSTJRecommended start date (Julian CYYDDD) — what the plan wants the order moved toNumeric6
MMRRQJRRQJRecommended completion date (Julian CYYDDD) — difference vs. the order's current date quantifies expedite/defer magnitudeNumeric6
MMREDJREDJRecommended effective date (Julian CYYDDD)Numeric6
MMOEDJOEDJOriginal effective date of the order being changed (Julian CYYDDD)Numeric6
MMLINELINEProduction line/cell for rate-based messagesString12
MMLOTNLOTNLot/serial number when the message is lot-specificString30
MMPNSPNSProduction number short — ties the message to production-number-controlled demandNumeric10
MMPMPNPMPNProduction number (long form)String30

Field provenance: hand-curated.

Boilerplate SQL

Starting point for reading F3411on 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  : F3411 MRP action messages — one row per recommendation the planning run generates (order, expedite, defer, cancel, increase, decrease) for an item/branch; planners work this queue after each run
-- Purpose: Column-selected read of F3411 — auto-generated from field metadata
-- Grain  : One row per MMUKID
-- 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
  f.MMUKID AS "Internal unique key — single-column primary key with no business meaning",
  f.MMITM AS "Short item number the message applies to",
  TRIM(f.MMMCU) AS "Branch/plant the message was generated for — right-justified 12-character",
  TRIM(f.MMMMCU) AS "Supplying/demand branch on transfer-type messages — right-justified 12-character",
  f.MMMSGT AS "Message type — the recommended action (order, expedite, defer, cancel, increase, decrease); the main slicer for message analytics",
  f.MMMSGA AS "Message action/control flag — whether the message has been processed, held, or cleared",
  f.MMHCLD AS "Hold code on the message",
  f.MMKCOO AS "Order company of the referenced order",
  f.MMDOCO AS "Order number the message refers to — the WO or PO to expedite/defer/cancel; blank on new-order messages until processed",
  f.MMDCTO AS "Order type of the referenced order",
  f.MMLNID / POWER(10, 3) AS "Line number of the referenced order line; 3 implied decimals",  -- implied decimals: 3 (verify in F9210)
  f.MMDSC1 AS "Message text shown to the planner",
  f.MMTRQT AS "Quantity the message recommends ordering or changing",
  f.MMVEND AS "Suggested supplier for purchase-type messages",
  CASE WHEN f.MMDRQJ IS NULL OR f.MMDRQJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.MMDRQJ AS INT) DIV 1000, 1, 1), CAST(f.MMDRQJ AS INT) % 1000 - 1) END AS "Requested/need date of the recommendation (Julian CYYDDD)",  -- CYYDDD Julian → DATE
  CASE WHEN f.MMSTRT IS NULL OR f.MMSTRT = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.MMSTRT AS INT) DIV 1000, 1, 1), CAST(f.MMSTRT AS INT) % 1000 - 1) END AS "Start date of the current order the message refers to (Julian CYYDDD)",  -- CYYDDD Julian → DATE
  CASE WHEN f.MMRSTJ IS NULL OR f.MMRSTJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.MMRSTJ AS INT) DIV 1000, 1, 1), CAST(f.MMRSTJ AS INT) % 1000 - 1) END AS "Recommended start date (Julian CYYDDD) — what the plan wants the order moved to",  -- CYYDDD Julian → DATE
  CASE WHEN f.MMRRQJ IS NULL OR f.MMRRQJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.MMRRQJ AS INT) DIV 1000, 1, 1), CAST(f.MMRRQJ AS INT) % 1000 - 1) END AS "Recommended completion date (Julian CYYDDD) — difference vs. the order's current date quantifies expedite/defer magnitude",  -- CYYDDD Julian → DATE
  CASE WHEN f.MMREDJ IS NULL OR f.MMREDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.MMREDJ AS INT) DIV 1000, 1, 1), CAST(f.MMREDJ AS INT) % 1000 - 1) END AS "Recommended effective date (Julian CYYDDD)",  -- CYYDDD Julian → DATE
  CASE WHEN f.MMOEDJ IS NULL OR f.MMOEDJ = 0 THEN NULL ELSE DATE_ADD(MAKE_DATE(1900 + CAST(f.MMOEDJ AS INT) DIV 1000, 1, 1), CAST(f.MMOEDJ AS INT) % 1000 - 1) END AS "Original effective date of the order being changed (Julian CYYDDD)",  -- CYYDDD Julian → DATE
  f.MMLINE AS "Production line/cell for rate-based messages",
  f.MMLOTN AS "Lot/serial number when the message is lot-specific",
  f.MMPNS AS "Production number short — ties the message to production-number-controlled demand",
  f.MMPMPN AS "Production number (long form)"
FROM <catalog>.<schema_data>.f3411 f
ORDER BY f.MMUKID;

2 parameters not filled: <catalog>, <schema_data>

Relationships

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

Join details

  • F3411F4801foreign key · N:1
    ON f3411.MMDOCO = f4801.WADOCO
  • F3411F4311foreign key · N:1
    ON f3411.MMDOCO = f4311.PDDOCO
  • F3411F0005UDC decode · N:1
    ON f3411.MMMSGT = f0005.DRKY

Programs That Use This Table