MRP_SCHEDULE_DATES
Schema: MRPtransactionPer inventory orgMDS/MPS schedule entries — one row per entry per item, org, schedule name, and date, spanning discrete quantities and repetitive rates, demand rows and supply rows
Three grain traps in one table: internal demand-type pegging rows are never user-visible (filter SUPPLY_DEMAND_TYPE), repetitive rows are a daily rate × date range with a NULL quantity (expand them), and SCHEDULE_QUANTITY decrements as relief consumes it (ORIGINAL_SCHEDULE_QUANTITY is the fixed figure)
The key is three-part — entry id + schedule level + supply/demand type; the entry id alone is not unique.
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
16 fields · 3 key
| # | Field | Description | Type | Flags |
|---|---|---|---|---|
| 1 | MPS_TRANSACTION_ID | The schedule entry id — NOT unique alone; the key adds level and supply/demand type | NUMBER | Key |
| 2 | SCHEDULE_LEVEL | Master schedule level — part of the three-part key | NUMBER | Key |
| 3 | SUPPLY_DEMAND_TYPE | Supply vs demand row — internal demand-type pegging rows are never user-visible; filter this | NUMBER | Key |
| 4 | INVENTORY_ITEM_ID | The scheduled item | NUMBER | |
| 5 | ORGANIZATION_ID | Inventory organization | NUMBER | |
| 6 | SCHEDULE_DESIGNATOR | The schedule the entry belongs to — joins with the org | VARCHAR2 | |
| 7 | SCHEDULE_DATE | The schedule date — the analysis date | DATE | Filter date |
| 8 | SCHEDULE_WORKDATE | The greatest workdate at or before the schedule date — for calendar-aligned rollups | DATE | |
| 9 | RATE_END_DATE | End of a repetitive rate span | DATE | |
| 10 | SCHEDULE_QUANTITY | Discrete quantity — NULL on repetitive rows, and it DECREMENTS as relief consumes it | NUMBER | |
| 11 | ORIGINAL_SCHEDULE_QUANTITY | The fixed pre-relief figure — the difference against current is consumption | NUMBER | |
| 12 | REPETITIVE_DAILY_RATE | Daily rate on repetitive rows — expand rate × workdays for quantities | NUMBER | |
| 13 | SCHEDULE_ORIGINATION_TYPE | Where the entry came from — forecast load, sales order load, copy, import; numeric, undecoded | NUMBER | |
| 14 | SOURCE_FORECAST_DESIGNATOR | The forecast a loaded entry came from | VARCHAR2 | |
| 15 | FORECAST_ID | The forecast entry a loaded row points back at | NUMBER | |
| 16 | SOURCE_SALES_ORDER_ID | The sales order a loaded demand entry came from | NUMBER |
Field provenance: hand-curated. 3 key fields.
Boilerplate SQL
Starting point for reading MRP_SCHEDULE_DATESon 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 : MRP_SCHEDULE_DATES — MDS/MPS schedule entries — one row per entry per item, org, schedule name, and date, spanning discrete quantities and repetitive rates, demand rows and supply rows
-- Purpose: Column-selected read of MRP_SCHEDULE_DATES — auto-generated from field metadata
-- Grain : One row per inventory org (ORGANIZATION_ID) + MPS_TRANSACTION_ID + SCHEDULE_LEVEL + SUPPLY_DEMAND_TYPE
-- Caution: Three grain traps in one table: internal demand-type pegging rows are never user-visible (filter SUPPLY_DEMAND_TYPE), repetitive rows are a daily rate × date range with a NULL quantity (expand them), and SCHEDULE_QUANTITY decrements as relief consumes it (ORIGINAL_SCHEDULE_QUANTITY is the fixed figure)
-- 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.MPS_TRANSACTION_ID AS "The schedule entry id — NOT unique alone; the key adds level and supply/demand type",
t.SCHEDULE_LEVEL AS "Master schedule level — part of the three-part key",
t.SUPPLY_DEMAND_TYPE AS "Supply vs demand row — internal demand-type pegging rows are never user-visible; filter this",
t.INVENTORY_ITEM_ID AS "The scheduled item",
t.ORGANIZATION_ID AS "Inventory organization",
t.SCHEDULE_DESIGNATOR AS "The schedule the entry belongs to — joins with the org",
t.SCHEDULE_DATE AS "The schedule date — the analysis date",
t.SCHEDULE_WORKDATE AS "The greatest workdate at or before the schedule date — for calendar-aligned rollups",
t.RATE_END_DATE AS "End of a repetitive rate span",
t.SCHEDULE_QUANTITY AS "Discrete quantity — NULL on repetitive rows, and it DECREMENTS as relief consumes it",
t.ORIGINAL_SCHEDULE_QUANTITY AS "The fixed pre-relief figure — the difference against current is consumption",
t.REPETITIVE_DAILY_RATE AS "Daily rate on repetitive rows — expand rate × workdays for quantities",
t.SCHEDULE_ORIGINATION_TYPE AS "Where the entry came from — forecast load, sales order load, copy, import; numeric, undecoded",
t.SOURCE_FORECAST_DESIGNATOR AS "The forecast a loaded entry came from",
t.FORECAST_ID AS "The forecast entry a loaded row points back at",
t.SOURCE_SALES_ORDER_ID AS "The sales order a loaded demand entry came from"
FROM <catalog>.<schema>.MRP_SCHEDULE_DATES t
WHERE
t.ORGANIZATION_ID = <inventory_org_id> -- inventory org, NOT the operating unit — see quirks guide #two-orgs
-- AND t.MPS_TRANSACTION_ID = <MPS_TRANSACTION_ID>
-- AND t.SCHEDULE_LEVEL = <SCHEDULE_LEVEL>
-- AND t.SUPPLY_DEMAND_TYPE = <SUPPLY_DEMAND_TYPE>
-- AND t.SCHEDULE_DATE >= DATE '<DATE_FROM>'
-- AND t.SCHEDULE_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.MPS_TRANSACTION_ID;9 parameters not filled: <catalog>, <schema>, <inventory_org_id>, <MPS_TRANSACTION_ID>, <SCHEDULE_LEVEL>, <SUPPLY_DEMAND_TYPE>, <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 MRP_SCHEDULE_DATES.SCHEDULE_DESIGNATOR = MRP_SCHEDULE_DESIGNATORS.SCHEDULE_DESIGNATOR AND MRP_SCHEDULE_DATES.ORGANIZATION_ID = MRP_SCHEDULE_DESIGNATORS.ORGANIZATION_IDON MRP_SCHEDULE_DATES.INVENTORY_ITEM_ID = MTL_SYSTEM_ITEMS_B.INVENTORY_ITEM_ID AND MRP_SCHEDULE_DATES.ORGANIZATION_ID = MTL_SYSTEM_ITEMS_B.ORGANIZATION_IDON MRP_SCHEDULE_DATES.FORECAST_ID = MRP_FORECAST_DATES.TRANSACTION_ID AND MRP_SCHEDULE_DATES.ORGANIZATION_ID = MRP_FORECAST_DATES.ORGANIZATION_ID