Skip to content
D365 Reference

InventTable

main

Released product master — one row per item within a company, carrying the RecId link to its shared product; item group and model group are assigned in the InventItemGroupItem / InventModelGroupItem link tables, not here

Module: Product InformationCompany-partitioned (DataAreaId)

Fields

34 fields · 1 key

KeyFieldEDTDescriptionTypeLengthFlags
KeyItemIdItemIdThe item number — the natural key analysts join every inventory and order table onstring20
ProductRecIdRecId of the shared product in EcoResProduct this released item points back toint64
NetWeightNet weight of one inventory unit of the itemreal
ItemTypeWhether the item is stocked, a service, or a BOMenum
NameAliasSearch alias for the itemstring
DefaultDimensionRecIdRecId of the item's default financial-dimension value set in DimensionAttributeValueSetint64
PrimaryVendorIdVendAccountPrimary vendor account for the item — the default sourcing join to VendTablestring
BOMUnitIdUnitOfMeasureSymbolUnit the item is measured in on bills of materialsstring
HeightNet height of one unitreal
DepthNet depth of one unitreal
WidthNet width of one unitreal
UnitVolumeVolume of one unit — with net weight, the basis for load and freight mathreal
TaraWeightPackaging (tare) weight of one unit; gross weight = net + tarereal
DensityDensity of the item, used in catch-weight and process scenariosreal
grossHeightPacked (gross) height of one unit — note the lowercase g in the physical column namereal
grossDepthPacked (gross) depth of one unitreal
grossWidthPacked (gross) width of one unitreal
CostGroupIdCost group for standard-cost breakdown and calculation groupingstring
ProdGroupIdProduction group linking the item to production posting profilesstring
ProdPoolIdProduction pool used to bucket production orders for scheduling and reportingstring
ReqGroupIdCoverage group driving master-planning policy (period, min/max, requirement) for the itemstring
ItemBuyerGroupIdBuyer group — who plans and purchases the item; a common planner-level reporting slicestring
BatchNumGroupIdNumber sequence group for batch numbers, set when the item is batch-trackedstring
SerialNumGroupIdNumber sequence group for serial numbers, set when the item is serial-trackedstring
PdsShelfLifeShelf life in days from manufacturing to expiry for batch-tracked itemsint
PdsBestBeforeDays before expiry at which a batch is best-before flaggedint
PdsShelfAdviceDays before expiry at which a shelf-advice date is raised for a batchint
ABCValueABC classification of the item by inventory valueenum
ABCRevenueABC classification of the item by revenue contributionenum
ABCContributionMarginABC classification of the item by contribution marginenum
ABCTieUpABC classification of the item by capital tie-up (carrying cost)enum
ProductLifecycleStateIdProduct lifecycle state of the released item (active, phase-out, obsolete…) — the standard filter for excluding dead items from planning analyticsstring
PhantomWhether the item is a phantom in BOM explosion (exploded through, never planned itself)enum
AltItemIdItemIdAlternative item suggested or used when this item is unavailablestring

Field provenance: hand-curated.

Boilerplate SQL

Starting point for reading InventTableon 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  : InventTable Released product master — one row per item within a company, carrying the RecId link to its shared product; item group and model group are assigned in the InventItemGroupItem / InventModelGroupItem link tables, not here
-- Purpose: Column-selected read of InventTable — auto-generated from field metadata
-- Grain  : One row per company (dataareaid) + ItemId
-- 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
  it.itemid AS "The item number — the natural key analysts join every inventory and order table on",
  it.product AS "RecId of the shared product in EcoResProduct this released item points back to",
  it.netweight AS "Net weight of one inventory unit of the item",
  it.itemtype AS "Whether the item is stocked, a service, or a BOM",  -- enum: decode it.itemtype via GlobalOptionsetMetadata join — see quirks guide #enums
  it.namealias AS "Search alias for the item",
  it.defaultdimension AS "RecId of the item's default financial-dimension value set in DimensionAttributeValueSet",
  it.primaryvendorid AS "Primary vendor account for the item — the default sourcing join to VendTable",
  it.bomunitid AS "Unit the item is measured in on bills of materials",
  it.height AS "Net height of one unit",
  it.depth AS "Net depth of one unit",
  it.width AS "Net width of one unit",
  it.unitvolume AS "Volume of one unit — with net weight, the basis for load and freight math",
  it.taraweight AS "Packaging (tare) weight of one unit; gross weight = net + tare",
  it.density AS "Density of the item, used in catch-weight and process scenarios",
  it.grossheight AS "Packed (gross) height of one unit — note the lowercase g in the physical column name",
  it.grossdepth AS "Packed (gross) depth of one unit",
  it.grosswidth AS "Packed (gross) width of one unit",
  it.costgroupid AS "Cost group for standard-cost breakdown and calculation grouping",
  it.prodgroupid AS "Production group linking the item to production posting profiles",
  it.prodpoolid AS "Production pool used to bucket production orders for scheduling and reporting",
  it.reqgroupid AS "Coverage group driving master-planning policy (period, min/max, requirement) for the item",
  it.itembuyergroupid AS "Buyer group — who plans and purchases the item; a common planner-level reporting slice",
  it.batchnumgroupid AS "Number sequence group for batch numbers, set when the item is batch-tracked",
  it.serialnumgroupid AS "Number sequence group for serial numbers, set when the item is serial-tracked",
  it.pdsshelflife AS "Shelf life in days from manufacturing to expiry for batch-tracked items",
  it.pdsbestbefore AS "Days before expiry at which a batch is best-before flagged",
  it.pdsshelfadvice AS "Days before expiry at which a shelf-advice date is raised for a batch",
  it.abcvalue AS "ABC classification of the item by inventory value",  -- enum: decode it.abcvalue via GlobalOptionsetMetadata join — see quirks guide #enums
  it.abcrevenue AS "ABC classification of the item by revenue contribution",  -- enum: decode it.abcrevenue via GlobalOptionsetMetadata join — see quirks guide #enums
  it.abccontributionmargin AS "ABC classification of the item by contribution margin",  -- enum: decode it.abccontributionmargin via GlobalOptionsetMetadata join — see quirks guide #enums
  it.abctieup AS "ABC classification of the item by capital tie-up (carrying cost)",  -- enum: decode it.abctieup via GlobalOptionsetMetadata join — see quirks guide #enums
  it.productlifecyclestateid AS "Product lifecycle state of the released item (active, phase-out, obsolete…) — the standard filter for excluding dead items from planning analytics",
  it.phantom AS "Whether the item is a phantom in BOM explosion (exploded through, never planned itself)",  -- enum: decode it.phantom via GlobalOptionsetMetadata join — see quirks guide #enums
  it.altitemid AS "Alternative item suggested or used when this item is unavailable"
FROM <catalog>.<schema>.inventtable it
-- Resolve EcoResProduct (via Product): uncomment to join on its RecId surrogate key
-- LEFT JOIN <catalog>.<schema>.ecoresproduct eco ON eco.recid = it.product
WHERE
  it.dataareaid = '<company>'
  -- AND it.itemid = '<ItemId>'
ORDER BY it.itemid;

4 parameters not filled: <catalog>, <schema>, <company>, <ItemId>

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

  • InventTableEcoResProductRecId ref · N:1
    ON inventtable.product = ecoresproduct.recid
  • InventItemGroupItemInventTableforeign key · N:1
    ON inventitemgroupitem.itemid = inventtable.itemid
  • InventItemGroupItemInventTableforeign key · N:1
    ON inventitemgroupitem.itemdataareaid = inventtable.dataareaid
  • InventModelGroupItemInventTableforeign key · N:1
    ON inventmodelgroupitem.itemid = inventtable.itemid
  • InventModelGroupItemInventTableforeign key · N:1
    ON inventmodelgroupitem.itemdataareaid = inventtable.dataareaid
  • InventJournalTransInventTableforeign key · N:1
    ON inventjournaltrans.itemid = inventtable.itemid
  • InventBatchInventTableforeign key · N:1
    ON inventbatch.itemid = inventtable.itemid
  • InventItemPriceInventTableforeign key · N:1
    ON inventitemprice.itemid = inventtable.itemid
  • SalesLineInventTableforeign key · N:1
    ON salesline.itemid = inventtable.itemid
  • CustInvoiceTransInventTableforeign key · N:1
    ON custinvoicetrans.itemid = inventtable.itemid
  • PurchLineInventTableforeign key · N:1
    ON purchline.itemid = inventtable.itemid
  • VendInvoiceTransInventTableforeign key · N:1
    ON vendinvoicetrans.itemid = inventtable.itemid
  • ProdTableInventTableforeign key · N:1
    ON prodtable.itemid = inventtable.itemid
  • ProdBOMInventTableforeign key · N:1
    ON prodbom.itemid = inventtable.itemid
  • BOMInventTableforeign key · N:1
    ON bom.itemid = inventtable.itemid
  • BOMVersionInventTableforeign key · N:1
    ON bomversion.itemid = inventtable.itemid
  • RouteVersionInventTableforeign key · N:1
    ON routeversion.itemid = inventtable.itemid
  • ReqTransInventTableforeign key · N:1
    ON reqtrans.itemid = inventtable.itemid
  • ForecastSalesInventTableforeign key · N:1
    ON forecastsales.itemid = inventtable.itemid
  • WHSLoadLineInventTableforeign key · N:1
    ON whsloadline.itemid = inventtable.itemid
  • WHSWorkLineInventTableforeign key · N:1
    ON whsworkline.itemid = inventtable.itemid

Data Entities That Expose This Table