Skip to content
D365 Reference

ProdBOM

worksheet line

Production order BOM line — the materials a specific production order plans to consume, copied from the item's active BOM at order creation and then adjusted per order

Module: Production ControlCompany-partitioned (DataAreaId)Header: ProdTable

Header & line

ProdBOM lines join back to their header ProdTable — and the DataAreaId — so a line never fans out across companies.

Fields

22 fields · 2 key

KeyFieldEDTDescriptionTypeLengthFlags
KeyProdIdProdIdThe production order this material line belongs tostring20
KeyLineNumLineNumLine number within the order's BOMreal
ItemIdItemIdComponent item planned for consumptionstring20
InventDimIdInventDimIdInventory-dimension combination the component is consumed from; join to InventDim to resolve site / warehousestring25
BOMIdBOMIdBOM header the line was copied fromstring20
ProdLineTypeLine type — item, phantom, pegged supply, or vendor (subcontracted)enum
BOMQtyComponent quantity per the BOM quantity seriesreal
BOMQtySerieQuantity series (per-series denominator) BOMQty applies toreal
BOMConsumpWhether consumption is constant or varies with order quantityenum
QtyBOMCalcEstimated consumption in the BOM unitreal
QtyInventCalcEstimated consumption in the inventory unitreal
RemainBOMPhysicalRemaining quantity to consume in the BOM unitreal
RemainInventPhysicalRemaining quantity to consume in the inventory unitreal
UnitIdUnit the BOM quantities are stated instring10
OprNumRoute operation the component is consumed atint
PositionPosition reference on the parent item (where the component sits)string
ProdFlushingPrincipFlushing principle — when consumption posts automatically (start, finish, manual…)enum
ScrapConstConstant scrap quantity added to the requirementreal
ScrapVarVariable scrap percentage added to the requirementreal
VendIdVendAccountVendor for subcontracted (vendor-type) linesstring20
RawMaterialDateDate the material is required — the primary analysis date for component demanddate
InventTransIdInventTransIdInventory transaction reference of the line's issue — the lot the consumption posts againststring40

Field provenance: hand-curated.

Boilerplate SQL

Starting point for reading ProdBOMon Databricks — enums are decoded, 1900-01-01 dates are wrapped to NULL, and the DataAreaId anchor is in place. Set your Unity Catalog location, company, and filter values below; they’re substituted into the SQL and the copy button.

Query parameters
-- ============================================================
-- Table  : ProdBOM Production order BOM line — the materials a specific production order plans to consume, copied from the item's active BOM at order creation and then adjusted per order
-- Purpose: Column-selected read of ProdBOM — auto-generated from field metadata
-- Grain  : One row per company (dataareaid) + ProdId + LineNum
-- Notes  : Auto-generated skeleton for Synapse Link / Fabric Link-landed F&O data (lowercase column names). Enums decoded inline where verified; datetimes stored in UTC; 1900-01-01 dates are sentinels mapped to NULL. System/audit columns omitted — see the quirks guide.
-- ============================================================
SELECT
  p.prodid AS "The production order this material line belongs to",
  p.linenum AS "Line number within the order's BOM",
  p.itemid AS "Component item planned for consumption",
  p.inventdimid AS "Inventory-dimension combination the component is consumed from; join to InventDim to resolve site / warehouse",
  p.bomid AS "BOM header the line was copied from",
  p.prodlinetype AS "Line type — item, phantom, pegged supply, or vendor (subcontracted)",  -- enum: decode p.prodlinetype via GlobalOptionsetMetadata join — see quirks guide #enums
  p.bomqty AS "Component quantity per the BOM quantity series",
  p.bomqtyserie AS "Quantity series (per-series denominator) BOMQty applies to",
  p.bomconsump AS "Whether consumption is constant or varies with order quantity",  -- enum: decode p.bomconsump via GlobalOptionsetMetadata join — see quirks guide #enums
  p.qtybomcalc AS "Estimated consumption in the BOM unit",
  p.qtyinventcalc AS "Estimated consumption in the inventory unit",
  p.remainbomphysical AS "Remaining quantity to consume in the BOM unit",
  p.remaininventphysical AS "Remaining quantity to consume in the inventory unit",
  p.unitid AS "Unit the BOM quantities are stated in",
  p.oprnum AS "Route operation the component is consumed at",
  p.position AS "Position reference on the parent item (where the component sits)",
  p.prodflushingprincip AS "Flushing principle — when consumption posts automatically (start, finish, manual…)",  -- enum: decode p.prodflushingprincip via GlobalOptionsetMetadata join — see quirks guide #enums
  p.scrapconst AS "Constant scrap quantity added to the requirement",
  p.scrapvar AS "Variable scrap percentage added to the requirement",
  p.vendid AS "Vendor for subcontracted (vendor-type) lines",
  p.rawmaterialdate AS "Date the material is required — the primary analysis date for component demand",
  p.inventtransid AS "Inventory transaction reference of the line's issue — the lot the consumption posts against"
FROM <catalog>.<schema>.prodbom p
-- Dimension expansion: uncomment to resolve site / warehouse / location / batch
-- LEFT JOIN <catalog>.<schema>.inventdim id ON id.inventdimid = p.inventdimid AND id.dataareaid = p.dataareaid
WHERE
  p.dataareaid = '<company>'
  -- AND p.prodid = '<ProdId>'
  -- AND p.rawmaterialdate >= '<DATE_FROM>'  -- yyyy-MM-dd (UTC)
  -- AND p.rawmaterialdate <= '<DATE_TO>'  -- yyyy-MM-dd (UTC)
ORDER BY p.prodid;

6 parameters not filled: <catalog>, <schema>, <company>, <ProdId>, <DATE_FROM>, <DATE_TO>

Relationships

1-hop neighbors — click a table to navigate there. RecId and InventDim edges are highlighted; they’re the joins newcomers most often get wrong.

Join details

  • ProdTableProdBOMheader line · 1:N
    ON prodtable.prodid = prodbom.prodid
  • ProdBOMInventTableforeign key · N:1
    ON prodbom.itemid = inventtable.itemid
  • ProdBOMInventDimInventDim · N:1
    ON prodbom.inventdimid = inventdim.inventdimid

Data Entities That Expose This Table

The production-order BOM line export entity's programmatic name could not be primary-source verified — land the raw table.