ProdBOM
worksheet lineProduction 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
What the badges mean
- main
- Table group: how F&O categorizes the table's role — main entity, group/header, transaction, worksheet header, worksheet line, reference, parameter, or framework.
- Shared across companies
- The table carries no
DataAreaId— rows aren’t partitioned per company, so a query never needs (and can’t use) a company filter here (see the quirks guide). - Date-effective
- The table carries a
ValidFrom/ValidToeffectivity window — a join without a date filter multiplies every key by its history (see the quirks guide).
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
22 fields.
| Key | Field | EDT | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| Key | ProdId | ProdId | The production order this material line belongs to | string | 20 | |
| Key | LineNum | LineNum | Line number within the order's BOM | real | ||
| ItemId | ItemId | Component item planned for consumption | string | 20 | ||
| InventDimId | InventDimId | Inventory-dimension combination the component is consumed from; join to InventDim to resolve site / warehouse | string | 25 | ||
| BOMId | BOMId | BOM header the line was copied from | string | 20 | ||
| ProdLineType | Line type — item, phantom, pegged supply, or vendor (subcontracted) | enum | ||||
| BOMQty | Component quantity per the BOM quantity series | real | ||||
| BOMQtySerie | Quantity series (per-series denominator) BOMQty applies to | real | ||||
| BOMConsump | Whether consumption is constant or varies with order quantity | enum | ||||
| QtyBOMCalc | Estimated consumption in the BOM unit | real | ||||
| QtyInventCalc | Estimated consumption in the inventory unit | real | ||||
| RemainBOMPhysical | Remaining quantity to consume in the BOM unit | real | ||||
| RemainInventPhysical | Remaining quantity to consume in the inventory unit | real | ||||
| UnitId | Unit the BOM quantities are stated in | string | 10 | |||
| OprNum | Route operation the component is consumed at | int | ||||
| Position | Position reference on the parent item (where the component sits) | string | ||||
| ProdFlushingPrincip | Flushing principle — when consumption posts automatically (start, finish, manual…) | enum | ||||
| ScrapConst | Constant scrap quantity added to the requirement | real | ||||
| ScrapVar | Variable scrap percentage added to the requirement | real | ||||
| VendId | VendAccount | Vendor for subcontracted (vendor-type) lines | string | 20 | ||
| RawMaterialDate | Date the material is required — the primary analysis date for component demand | date | ||||
| InventTransId | InventTransId | Inventory transaction reference of the line's issue — the lot the consumption posts against | string | 40 |
Field provenance: hand-curated.
Boilerplate SQL
Starting point for reading ProdBOM on 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.
6 parameters not filled: <catalog>, <schema>, <company>, <ProdId>, <DATE_FROM>, <DATE_TO>
-- ============================================================
-- 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;Verified September 2026
Relationships
Diagram of 1-hop neighbors — join details below. RecId and InventDim edges are highlighted; they’re the joins newcomers most often get wrong.
Join details
ON prodtable.prodid = prodbom.prodid AND prodtable.dataareaid = prodbom.dataareaidON prodbom.itemid = inventtable.itemid AND prodbom.dataareaid = inventtable.dataareaidON prodbom.inventdimid = inventdim.inventdimid AND prodbom.dataareaid = inventdim.dataareaid
Data Entities That Expose This Table
More Production Control tables
- ProdTableProduction order header — one row per order carrying the item being built, order status and type, scheduled and actual dates, and the BOM and route it was created from
- RouteRoute operation sequence — one row per operation number on a route, ordering the operations and linking each to the next; operation times live on the related RouteOpr table
- RouteTableRoute header — one row per route identifier with its name and approval state; route versions assign it to items, and Route rows hold its operation sequence
- RouteVersionRoute version — the link that assigns a route to a finished item for a validity period, quantity range, and site, mirroring how BOMVersion assigns a BOM
- BOMBill of materials line — one component per row under a BOM header, with quantity per unit, validity dates, scrap factors, and the operation it is consumed at
- BOMTableBill of materials header — one row per BOM identifier, with its name, approval state, and production site; versions in BOMVersion decide which items use it and when