INV_ONHAND_QUANTITIES_DETAIL
Product: INVtransactionPer inventory orgThe on-hand balance detail — receipt-level slices of stock per item, org, subinventory, locator, and lot, consumed in FIFO order as material issues
Rows are FIFO receipt slices — SUM PRIMARY_TRANSACTION_QUANTITY at your chosen grain; a single row is not a balance
One item in one bin can hold many rows (one per receipt). On-hand at any grain is SUM(PRIMARY_TRANSACTION_QUANTITY) — or SUM(TRANSACTION_QUANTITY) in the row's own UOM — grouped by that grain; DATE_RECEIVED orders the slices. Fusion also maintains a ready-made aggregate in INV_ONHAND_QUANTITIES_SUMMARY.
What the badges mean
- master
- Data class: what the table holds — master data, transaction documents, control/configuration, interface/staging, or a documented view.
Extract access
The delivered surfaces that reach this table — the BICC extract data store (PVO) for bulk extraction and the OTBI subject areas for real-time queries. There is no SQL path to the SaaS database.
- FscmTopModelAM.ScmExtractAM.InvBiccExtractAM.InventoryOnhandExtractPVOOTBI: Inventory - Inventory Balance Real Time
Keyed on OnhandQuantitiesId, mirroring the detail table's key. The subject-area name is singular Balance in Oracle's book — not Balances.
Oracle data-store documentation →
Fields
15 fields · 1 key
| # | Field | Description | Type | Flags |
|---|---|---|---|---|
| 1 | ONHAND_QUANTITIES_ID | Surrogate key of the on-hand slice | NUMBER | Key |
| 2 | INVENTORY_ITEM_ID | Item on hand | NUMBER | |
| 3 | ORGANIZATION_ID | Inventory org holding the stock | NUMBER | |
| 4 | SUBINVENTORY_CODE | Subinventory holding the stock | VARCHAR2 | |
| 5 | LOCATOR_ID | Locator holding the stock | NUMBER | |
| 6 | LOT_NUMBER | Lot, when lot-controlled | VARCHAR2 | |
| 7 | PRIMARY_TRANSACTION_QUANTITY | Slice quantity in the item's primary UOM — SUM this for on-hand | NUMBER | |
| 8 | TRANSACTION_QUANTITY | Slice quantity in the entered UOM | NUMBER | |
| 9 | TRANSACTION_UOM_CODE | UOM of the creating transaction — note the _CODE suffix the transaction ledger's TRANSACTION_UOM lacks | VARCHAR2 | |
| 10 | SECONDARY_TRANSACTION_QUANTITY | Slice quantity in the secondary UOM (dual-UOM items) | NUMBER | |
| 11 | SECONDARY_UOM_CODE | Secondary UOM | VARCHAR2 | |
| 12 | DATE_RECEIVED | Receipt date of the slice — orders the FIFO consumption | DATE | Filter date |
| 13 | PROJECT_ID | Project stripe on the slice | NUMBER | |
| 14 | TASK_ID | Task stripe on the slice | NUMBER | |
| 15 | COUNTRY_OF_ORIGIN_CODE | Country-of-origin stripe on the slice | VARCHAR2 |
Field provenance: hand-curated. 1 key field.
Boilerplate SQL
Starting point for reading the BICC-landed copy of INV_ONHAND_QUANTITIES_DETAILon Databricks — real DATE columns need no conversion, and the org anchor and the LAST_UPDATE_DATE watermark (the column incremental BICC extracts key on) are already in place. Set your Unity Catalog location, schema, and org values below; they’re substituted into the SQL and the copy button.
-- ============================================================
-- Table : INV_ONHAND_QUANTITIES_DETAIL — The on-hand balance detail — receipt-level slices of stock per item, org, subinventory, locator, and lot, consumed in FIFO order as material issues
-- Purpose: Column-selected read of INV_ONHAND_QUANTITIES_DETAIL — auto-generated from field metadata
-- Grain : One row per inventory org (ORGANIZATION_ID) + ONHAND_QUANTITIES_ID
-- Caution: Rows are FIFO receipt slices — SUM PRIMARY_TRANSACTION_QUANTITY at your chosen grain; a single row is not a balance
-- Notes : Auto-generated skeleton for Oracle Fusion Cloud data landed in your lakehouse by a BICC extract — there is no SQL path to the SaaS database. Column names follow Oracle's table documentation — if your landed data still carries PVO attribute headers, map names first; see quirks #pvo-drift. Dates are real DATE/TIMESTAMP columns — no conversion needed. WHO audit columns omitted (see the quirks guide); the optional LAST_UPDATE_DATE watermark filter supports incremental extracts.
-- ============================================================
SELECT
t.ONHAND_QUANTITIES_ID AS "Surrogate key of the on-hand slice",
t.INVENTORY_ITEM_ID AS "Item on hand",
t.ORGANIZATION_ID AS "Inventory org holding the stock",
t.SUBINVENTORY_CODE AS "Subinventory holding the stock",
t.LOCATOR_ID AS "Locator holding the stock",
t.LOT_NUMBER AS "Lot, when lot-controlled",
t.PRIMARY_TRANSACTION_QUANTITY AS "Slice quantity in the item's primary UOM — SUM this for on-hand",
t.TRANSACTION_QUANTITY AS "Slice quantity in the entered UOM",
t.TRANSACTION_UOM_CODE AS "UOM of the creating transaction — note the _CODE suffix the transaction ledger's TRANSACTION_UOM lacks",
t.SECONDARY_TRANSACTION_QUANTITY AS "Slice quantity in the secondary UOM (dual-UOM items)",
t.SECONDARY_UOM_CODE AS "Secondary UOM",
t.DATE_RECEIVED AS "Receipt date of the slice — orders the FIFO consumption",
t.PROJECT_ID AS "Project stripe on the slice",
t.TASK_ID AS "Task stripe on the slice",
t.COUNTRY_OF_ORIGIN_CODE AS "Country-of-origin stripe on the slice"
FROM <catalog>.<schema>.INV_ONHAND_QUANTITIES_DETAIL t
WHERE
t.ORGANIZATION_ID = <inventory_org_id> -- inventory org, NOT the business unit — see quirks guide #item-org-striping
-- AND t.ONHAND_QUANTITIES_ID = <ONHAND_QUANTITIES_ID>
-- AND t.DATE_RECEIVED >= DATE '<DATE_FROM>'
-- AND t.DATE_RECEIVED <= DATE '<DATE_TO>'
-- AND t.LAST_UPDATE_DATE >= TIMESTAMP '<watermark>' -- the column incremental BICC extracts key on
ORDER BY t.ONHAND_QUANTITIES_ID;7 parameters not filled: <catalog>, <schema>, <inventory_org_id>, <ONHAND_QUANTITIES_ID>, <DATE_FROM>, <DATE_TO>, <watermark>
Relationships
1-hop neighbors — click a table to navigate there. FND lookup decode and translation edges are highlighted; they’re the joins newcomers most often get wrong.
Join details
ON INV_ONHAND_QUANTITIES_DETAIL.INVENTORY_ITEM_ID = EGP_SYSTEM_ITEMS_B.INVENTORY_ITEM_ID AND INV_ONHAND_QUANTITIES_DETAIL.ORGANIZATION_ID = EGP_SYSTEM_ITEMS_B.ORGANIZATION_IDON INV_ONHAND_QUANTITIES_DETAIL.SUBINVENTORY_CODE = INV_SECONDARY_INVENTORIES.SECONDARY_INVENTORY_NAME AND INV_ONHAND_QUANTITIES_DETAIL.ORGANIZATION_ID = INV_SECONDARY_INVENTORIES.ORGANIZATION_IDON INV_ONHAND_QUANTITIES_DETAIL.LOCATOR_ID = INV_ITEM_LOCATIONS.INVENTORY_LOCATION_ID AND INV_ONHAND_QUANTITIES_DETAIL.ORGANIZATION_ID = INV_ITEM_LOCATIONS.ORGANIZATION_IDON INV_ONHAND_QUANTITIES_DETAIL.LOT_NUMBER = INV_LOT_NUMBERS.LOT_NUMBER AND INV_ONHAND_QUANTITIES_DETAIL.INVENTORY_ITEM_ID = INV_LOT_NUMBERS.INVENTORY_ITEM_ID AND INV_ONHAND_QUANTITIES_DETAIL.ORGANIZATION_ID = INV_LOT_NUMBERS.ORGANIZATION_ID