MTL_MATERIAL_TRANSACTIONS
Schema: INVtransactionPer inventory orgThe material transaction ledger — one row per inventory movement or cost update, classified by transaction type, action, and source type, with quantity, date, and the document reference that caused it; the reconciliation backbone for every stock question
Inter-org transfers write two rows (issue and receipt) linked through the transfer transaction id; TRANSFER_ORGANIZATION_ID carries the counterpart org. The UOM column here is TRANSACTION_UOM — the on-hand table spells its equivalent TRANSACTION_UOM_CODE. Accounting distributions, lot detail, and serial detail hang off TRANSACTION_ID in child tables.
What the badges mean
- master
- Data class: what the table holds — master data, transaction documents, control/configuration, interface/staging, or an APPS-schema view.
Fields
18 fields · 1 key
| # | Field | Description | Type | Flags |
|---|---|---|---|---|
| 1 | TRANSACTION_ID | Transaction id — the ledger's key; distributions, lot, and serial detail join on it | NUMBER | Key |
| 2 | INVENTORY_ITEM_ID | Item id | NUMBER | |
| 3 | ORGANIZATION_ID | Inventory organization the movement happened in | NUMBER | |
| 4 | SUBINVENTORY_CODE | The subinventory the movement touched | VARCHAR2 | |
| 5 | LOCATOR_ID | The locator the movement touched | NUMBER | |
| 6 | TRANSACTION_TYPE_ID | The transaction type — the user-facing classification; decodes via MTL_TRANSACTION_TYPES | NUMBER | |
| 7 | TRANSACTION_ACTION_ID | The physical action (issue, receipt, transfer…) behind the type | NUMBER | MTL_TRANSACTION_ACTION |
| 8 | TRANSACTION_SOURCE_TYPE_ID | What kind of document drove the movement (purchase order, sales order, job…) | NUMBER | |
| 9 | TRANSACTION_SOURCE_ID | The driving document's id — what it points at depends on the source type | NUMBER | |
| 10 | TRANSACTION_QUANTITY | Signed quantity in the transaction UOM | NUMBER | |
| 11 | PRIMARY_QUANTITY | Signed quantity in the item's primary UOM — the column to aggregate | NUMBER | |
| 12 | TRANSACTION_UOM | The UOM the transaction was entered in (the on-hand table spells its equivalent TRANSACTION_UOM_CODE) | VARCHAR2 | |
| 13 | TRANSACTION_DATE | When the movement happened — the primary analysis date | DATE | Filter date |
| 14 | TRANSFER_ORGANIZATION_ID | Counterpart org on inter-org transfers | NUMBER | |
| 15 | ACTUAL_COST | Unit cost the movement was valued at | NUMBER | |
| 16 | REVISION | Item revision the movement applied to | VARCHAR2 | |
| 17 | TRANSACTION_REFERENCE | Free-form reference entered with the transaction | VARCHAR2 | |
| 18 | RCV_TRANSACTION_ID | The receiving transaction that drove this movement, for receipt-sourced rows — the cross-ledger link to receiving | NUMBER |
Field provenance: hand-curated. 1 key field.
Boilerplate SQL
Starting point for reading MTL_MATERIAL_TRANSACTIONSon Databricks — real DATE columns need no conversion, and the org anchor and the LAST_UPDATE_DATE watermark 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 : MTL_MATERIAL_TRANSACTIONS — The material transaction ledger — one row per inventory movement or cost update, classified by transaction type, action, and source type, with quantity, date, and the document reference that caused it; the reconciliation backbone for every stock question
-- Purpose: Column-selected read of MTL_MATERIAL_TRANSACTIONS — auto-generated from field metadata
-- Grain : One row per inventory org (ORGANIZATION_ID) + TRANSACTION_ID
-- Notes : Auto-generated skeleton for Oracle EBS R12 data landed in your lakehouse. 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.TRANSACTION_ID AS "Transaction id — the ledger's key; distributions, lot, and serial detail join on it",
t.INVENTORY_ITEM_ID AS "Item id",
t.ORGANIZATION_ID AS "Inventory organization the movement happened in",
t.SUBINVENTORY_CODE AS "The subinventory the movement touched",
t.LOCATOR_ID AS "The locator the movement touched",
t.TRANSACTION_TYPE_ID AS "The transaction type — the user-facing classification; decodes via MTL_TRANSACTION_TYPES",
t.TRANSACTION_ACTION_ID AS "The physical action (issue, receipt, transfer…) behind the type", -- decode t.TRANSACTION_ACTION_ID via FND_LOOKUP_VALUES (LOOKUP_TYPE = 'MTL_TRANSACTION_ACTION', LANGUAGE-filtered) — see quirks guide #lookups
t.TRANSACTION_SOURCE_TYPE_ID AS "What kind of document drove the movement (purchase order, sales order, job…)",
t.TRANSACTION_SOURCE_ID AS "The driving document's id — what it points at depends on the source type",
t.TRANSACTION_QUANTITY AS "Signed quantity in the transaction UOM",
t.PRIMARY_QUANTITY AS "Signed quantity in the item's primary UOM — the column to aggregate",
t.TRANSACTION_UOM AS "The UOM the transaction was entered in (the on-hand table spells its equivalent TRANSACTION_UOM_CODE)",
t.TRANSACTION_DATE AS "When the movement happened — the primary analysis date",
t.TRANSFER_ORGANIZATION_ID AS "Counterpart org on inter-org transfers",
t.ACTUAL_COST AS "Unit cost the movement was valued at",
t.REVISION AS "Item revision the movement applied to",
t.TRANSACTION_REFERENCE AS "Free-form reference entered with the transaction",
t.RCV_TRANSACTION_ID AS "The receiving transaction that drove this movement, for receipt-sourced rows — the cross-ledger link to receiving"
FROM <catalog>.<schema>.MTL_MATERIAL_TRANSACTIONS t
WHERE
t.ORGANIZATION_ID = <inventory_org_id> -- inventory org, NOT the operating unit — see quirks guide #two-orgs
-- AND t.TRANSACTION_ID = <TRANSACTION_ID>
-- AND t.TRANSACTION_DATE >= DATE '<DATE_FROM>'
-- AND t.TRANSACTION_DATE <= DATE '<DATE_TO>'
-- AND t.LAST_UPDATE_DATE >= TIMESTAMP '<watermark>' -- WHO watermark, bulk-stamped by batch jobs; see quirks guide #who-columns
ORDER BY t.TRANSACTION_ID;7 parameters not filled: <catalog>, <schema>, <inventory_org_id>, <TRANSACTION_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 MTL_MATERIAL_TRANSACTIONS.INVENTORY_ITEM_ID = MTL_SYSTEM_ITEMS_B.INVENTORY_ITEM_ID AND MTL_MATERIAL_TRANSACTIONS.ORGANIZATION_ID = MTL_SYSTEM_ITEMS_B.ORGANIZATION_IDON MTL_MATERIAL_TRANSACTIONS.TRANSACTION_TYPE_ID = MTL_TRANSACTION_TYPES.TRANSACTION_TYPE_IDON MTL_MATERIAL_TRANSACTIONS.SUBINVENTORY_CODE = MTL_SECONDARY_INVENTORIES.SECONDARY_INVENTORY_NAME AND MTL_MATERIAL_TRANSACTIONS.ORGANIZATION_ID = MTL_SECONDARY_INVENTORIES.ORGANIZATION_IDON MTL_MATERIAL_TRANSACTIONS.LOCATOR_ID = MTL_ITEM_LOCATIONS.INVENTORY_LOCATION_ID AND MTL_MATERIAL_TRANSACTIONS.ORGANIZATION_ID = MTL_ITEM_LOCATIONS.ORGANIZATION_IDON MTL_MATERIAL_TRANSACTIONS.ORGANIZATION_ID = MTL_PARAMETERS.ORGANIZATION_IDON MTL_TRANSACTION_ACCOUNTS.TRANSACTION_ID = MTL_MATERIAL_TRANSACTIONS.TRANSACTION_ID AND MTL_TRANSACTION_ACCOUNTS.ORGANIZATION_ID = MTL_MATERIAL_TRANSACTIONS.ORGANIZATION_IDON MTL_TRANSACTION_LOT_NUMBERS.TRANSACTION_ID = MTL_MATERIAL_TRANSACTIONS.TRANSACTION_ID AND MTL_TRANSACTION_LOT_NUMBERS.ORGANIZATION_ID = MTL_MATERIAL_TRANSACTIONS.ORGANIZATION_IDON MTL_MATERIAL_TRANSACTIONS.RCV_TRANSACTION_ID = RCV_TRANSACTIONS.TRANSACTION_ID AND MTL_MATERIAL_TRANSACTIONS.ORGANIZATION_ID = RCV_TRANSACTIONS.ORGANIZATION_ID