D365 Reference
InventSum
transactionAggregated on-hand quantities by item and inventory dimension — physical, available, and posted balances
Module: InventoryCompany-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/ValidToeffectivity 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
Fields
24 fields · 2 key
24 fields.
| Key | Field | EDT | Description | Type | Length | Flags |
|---|---|---|---|---|---|---|
| Key | ItemId | ItemId | Item the on-hand balance is for | string | 20 | |
| Key | InventDimId | InventDimId | Inventory-dimension combination the balance is aggregated at; join to InventDim to resolve site / warehouse / location | string | 25 | |
| PhysicalInvent | Physically on-hand quantity for the item and dimension | real | ||||
| AvailPhysical | Physically available quantity (on-hand less physical reservations) | real | ||||
| PostedQty | Financially posted quantity for the item and dimension | real | ||||
| Closed | Whether the on-hand row is closed (zero balance) and excluded from active on-hand | enum | ||||
| PhysicalValue | Value of the physically posted quantity for the item and dimension | real | ||||
| PostedValue | Financially posted value for the item and dimension | real | ||||
| AvailOrdered | Total available quantity including ordered receipts, less ordered reservations | real | ||||
| Ordered | Quantity on ordered receipts (purchase orders and other inbound supply) | real | ||||
| OnOrder | Quantity on open issue demand (sales orders and other outbound demand) | real | ||||
| Arrived | Quantity arrived but not yet received into on-hand | real | ||||
| Received | Quantity physically received (product receipt posted, not yet invoiced) | real | ||||
| Registered | Quantity registered at receipt but not yet posted | real | ||||
| Picked | Quantity picked for outbound orders but not yet deducted | real | ||||
| Deducted | Quantity deducted (packing slip posted, not yet invoiced) | real | ||||
| ReservPhysical | Quantity reserved against physical on-hand | real | ||||
| ReservOrdered | Quantity reserved against ordered (not yet received) supply | real | ||||
| QuotationIssue | Quantity tied up on open sales quotations | real | ||||
| QuotationReceipt | Quantity expected from open purchase quotations (RFQs) | real | ||||
| ClosedQty | Whether the quantity side of the record is fully settled by inventory closing | enum | ||||
| IsExcludedFromInventoryValue | Whether the record is excluded from inventory value reporting | enum | ||||
| LastUpdDateExpected | Date the expected (ordered/on-order) buckets last changed; unset rows carry the 1900-01-01 sentinel | date | ||||
| LastUpdDatePhysical | Date the physical buckets last changed; unset rows carry the 1900-01-01 sentinel | date |
Field provenance: hand-curated.
Boilerplate SQL
Starting point for reading InventSum 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 : InventSum Aggregated on-hand quantities by item and inventory dimension — physical, available, and posted balances
-- Purpose: Column-selected read of InventSum — auto-generated from field metadata
-- Grain : One row per company (dataareaid) + ItemId + InventDimId
-- 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
s.itemid AS "Item the on-hand balance is for",
s.inventdimid AS "Inventory-dimension combination the balance is aggregated at; join to InventDim to resolve site / warehouse / location",
s.physicalinvent AS "Physically on-hand quantity for the item and dimension",
s.availphysical AS "Physically available quantity (on-hand less physical reservations)",
s.postedqty AS "Financially posted quantity for the item and dimension",
s.closed AS "Whether the on-hand row is closed (zero balance) and excluded from active on-hand", -- enum: decode s.closed via GlobalOptionsetMetadata join — see quirks guide #enums
s.physicalvalue AS "Value of the physically posted quantity for the item and dimension",
s.postedvalue AS "Financially posted value for the item and dimension",
s.availordered AS "Total available quantity including ordered receipts, less ordered reservations",
s.ordered AS "Quantity on ordered receipts (purchase orders and other inbound supply)",
s.onorder AS "Quantity on open issue demand (sales orders and other outbound demand)",
s.arrived AS "Quantity arrived but not yet received into on-hand",
s.received AS "Quantity physically received (product receipt posted, not yet invoiced)",
s.registered AS "Quantity registered at receipt but not yet posted",
s.picked AS "Quantity picked for outbound orders but not yet deducted",
s.deducted AS "Quantity deducted (packing slip posted, not yet invoiced)",
s.reservphysical AS "Quantity reserved against physical on-hand",
s.reservordered AS "Quantity reserved against ordered (not yet received) supply",
s.quotationissue AS "Quantity tied up on open sales quotations",
s.quotationreceipt AS "Quantity expected from open purchase quotations (RFQs)",
s.closedqty AS "Whether the quantity side of the record is fully settled by inventory closing", -- enum: decode s.closedqty via GlobalOptionsetMetadata join — see quirks guide #enums
s.isexcludedfrominventoryvalue AS "Whether the record is excluded from inventory value reporting", -- enum: decode s.isexcludedfrominventoryvalue via GlobalOptionsetMetadata join — see quirks guide #enums
CASE WHEN CAST(s.lastupddateexpected AS DATE) = DATE '1900-01-01' THEN NULL ELSE CAST(s.lastupddateexpected AS DATE) END AS "Date the expected (ordered/on-order) buckets last changed; unset rows carry the 1900-01-01 sentinel", -- 1900-01-01 sentinel → NULL
CASE WHEN CAST(s.lastupddatephysical AS DATE) = DATE '1900-01-01' THEN NULL ELSE CAST(s.lastupddatephysical AS DATE) END AS "Date the physical buckets last changed; unset rows carry the 1900-01-01 sentinel" -- 1900-01-01 sentinel → NULL
FROM <catalog>.<schema>.inventsum s
-- Dimension expansion: uncomment to resolve site / warehouse / location / batch
-- LEFT JOIN <catalog>.<schema>.inventdim id ON id.inventdimid = s.inventdimid AND id.dataareaid = s.dataareaid
WHERE
s.dataareaid = '<company>'
-- AND s.itemid = '<ItemId>'
ORDER BY s.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
ON inventsum.inventdimid = inventdim.inventdimid AND inventsum.dataareaid = inventdim.dataareaid
Data Entities That Expose This Table
Only aggregate on-hand export entities exist — for the transaction-level ledger, land InventSum (and InventTrans) as raw tables.
More Inventory tables
- InventTransThe inventory transaction ledger — every physical and financial stock movement, with issue/receipt status, quantities, dates, and links back to its source document
- InventTransOriginThe origin record every inventory transaction points to — resolves an InventTrans row back to the sales line, purchase line, or journal that created it
- WMSLocationWarehouse location (bin) master — one row per storage location within a warehouse, with its aisle/rack/level coordinates, zone, profile, and capacity limits
- InventBatchBatch master — one row per item and batch number, carrying expiry and manufacturing dates plus vendor batch details; the record behind the inventBatchId dimension
- InventDimThe inventory dimension hub — one row per unique combination of site, warehouse, location, batch, and serial that every stock quantity hangs off by InventDimId
- InventItemPriceItem price records — activated cost, purchase, and sales prices per item, costing version, and dimension; the source for standard-cost analysis