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)
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/ValidTo effectivity window — a join without a date filter multiplies every key by its history (see the quirks guide).
In field listings, K marks a key field.
Used in the library
KPI definitions
Dashboard patterns

Fields

34 fields · 1 key

34 fields.

Table fields: key flag, field name, extended data type, description, data type, length, and quirk flags. 34 fields.
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 InventTable 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.

Query parameters

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

-- ============================================================
-- 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;

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

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

Data Entities That Expose This Table

More Product Information tables

Maintained by Summit Analytics, a supply chain analytics practice. The tools and references are free — the consulting is selective.

Part of the Summit Analytics reference library.

Work with the practice

Not affiliated with or endorsed by Microsoft. Microsoft, Dynamics 365, and Microsoft Fabric are trademarks of the Microsoft group of companies.