MSC_DEMANDS
Schema: MSCtransactionPer inventory orgEvery demand row a plan considered — sales orders, forecasts, and the dependent demand exploded from supplies, each with its due date, quantity, and origin
Independent AND dependent demand share the table — segment ORIGINATION_TYPE or exploded component demand mixes into top-level order counts; always filter one PLAN_ID; rate-based rows carry rates, not discrete quantities
DISPOSITION_ID points at the generating supply for dependent demand — the pegging thread. Item/org ids are planning-instance copies, as on the supplies table.
What the badges mean
- Schema: INV
- Schema: the Oracle product schema that owns the table (INV, ONT, WSH, PO, BOM, WIP, MRP, MSC, AR, AP, GL, HR, APPLSYS) — tells you which product family the object belongs to, not who can query it.
- master
- Data class: what the table holds — master data, transaction documents, control/configuration, interface/staging, or an APPS-schema view.
- OU-striped (ORG_ID)
- Rows are scoped to an operating unit. A landed extract carries every operating unit’s rows — filter or join on
ORG_ID, and don’t confuse it withORGANIZATION_ID(see the quirks guide). - Per inventory org
- Rows are scoped to an inventory organization (plant or warehouse) via
ORGANIZATION_ID— a different partition from OU-striped tables (see the quirks guide). - Language-striped
- The table carries a
LANGUAGEcolumn (a _TL translation table or FND_LOOKUP_VALUES) — one row per language. Filter to oneLANGUAGEor a join multiplies rows (see the quirks guide). - View
- This is an APPS-schema convenience view, not a physical table. Extract the base tables it joins instead — views can be slow at scale and aren't guaranteed stable across patches.
Structural facts — how the table is partitioned, not a trap by itself
Join & extract hazards — verify before you rely on this
Fields
15 fields · 3 key
15 fields.
| # | Field | Description | Type | Flags |
|---|---|---|---|---|
| 1 | DEMAND_ID | The demand row id — plan-scoped | NUMBER | Primary-key field |
| 2 | PLAN_ID | The plan — every query filters one | NUMBER | Primary-key field |
| 3 | SR_INSTANCE_ID | The collected source instance — part of the key | NUMBER | Primary-key field |
| 4 | ORGANIZATION_ID | Planning-instance copy of the org id | NUMBER | |
| 5 | INVENTORY_ITEM_ID | Planning-instance copy of the demanded item | NUMBER | |
| 6 | USING_ASSEMBLY_ITEM_ID | The parent assembly generating dependent demand | NUMBER | |
| 7 | USING_ASSEMBLY_DEMAND_DATE | The demand due date — the analysis date | DATE | The table's primary analysis date — a real DATE column, no conversion needed |
| 8 | USING_REQUIREMENT_QUANTITY | The required quantity | NUMBER | |
| 9 | DISPOSITION_ID | The generating supply (dependent demand) or the schedule entry behind independent demand — the pegging thread | NUMBER | |
| 10 | ORIGINATION_TYPE | Where the demand came from — sales order, forecast, dependent…; numeric, undecoded | NUMBER | |
| 11 | DEMAND_TYPE | 1 = discrete demand, 2 = rate-based (per the data dictionary's own comment) — rate rows carry rates, not quantities | NUMBER | |
| 12 | DEMAND_PRIORITY | Priority input to plan scheduling | NUMBER | |
| 13 | ASSEMBLY_DEMAND_COMP_DATE | The using assembly's completion date | DATE | |
| 14 | PLANNING_GROUP | Planning group of the demand | VARCHAR2 | |
| 15 | DAILY_DEMAND_RATE | The daily rate on rate-based rows | NUMBER |
Field provenance: hand-curated. 3 key fields.
Boilerplate SQL
Starting point for reading MSC_DEMANDS on Databricks — real DATE columns need no conversion, and the org anchor is already in place. The optional LAST_UPDATE_DATE watermark is included. Set your Unity Catalog location, schema, and org values below; they’re substituted into the SQL and the copy button.
9 parameters not filled: <catalog>, <schema>, <inventory_org_id>, <DEMAND_ID>, <PLAN_ID>, <SR_INSTANCE_ID>, <DATE_FROM>, <DATE_TO>, <watermark>
-- ============================================================
-- Table : MSC_DEMANDS — Every demand row a plan considered — sales orders, forecasts, and the dependent demand exploded from supplies, each with its due date, quantity, and origin
-- Purpose: Column-selected read of MSC_DEMANDS — auto-generated from field metadata
-- Grain : One row per inventory org (ORGANIZATION_ID) + DEMAND_ID + PLAN_ID + SR_INSTANCE_ID
-- Caution: Independent AND dependent demand share the table — segment ORIGINATION_TYPE or exploded component demand mixes into top-level order counts; always filter one PLAN_ID; rate-based rows carry rates, not discrete quantities
-- 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.DEMAND_ID AS "The demand row id — plan-scoped",
t.PLAN_ID AS "The plan — every query filters one",
t.SR_INSTANCE_ID AS "The collected source instance — part of the key",
t.ORGANIZATION_ID AS "Planning-instance copy of the org id",
t.INVENTORY_ITEM_ID AS "Planning-instance copy of the demanded item",
t.USING_ASSEMBLY_ITEM_ID AS "The parent assembly generating dependent demand",
t.USING_ASSEMBLY_DEMAND_DATE AS "The demand due date — the analysis date",
t.USING_REQUIREMENT_QUANTITY AS "The required quantity",
t.DISPOSITION_ID AS "The generating supply (dependent demand) or the schedule entry behind independent demand — the pegging thread",
t.ORIGINATION_TYPE AS "Where the demand came from — sales order, forecast, dependent…; numeric, undecoded",
t.DEMAND_TYPE AS "1 = discrete demand, 2 = rate-based (per the data dictionary's own comment) — rate rows carry rates, not quantities",
t.DEMAND_PRIORITY AS "Priority input to plan scheduling",
t.ASSEMBLY_DEMAND_COMP_DATE AS "The using assembly's completion date",
t.PLANNING_GROUP AS "Planning group of the demand",
t.DAILY_DEMAND_RATE AS "The daily rate on rate-based rows"
FROM <catalog>.<schema>.MSC_DEMANDS t
WHERE
t.ORGANIZATION_ID = <inventory_org_id> -- inventory org, NOT the operating unit — see quirks guide #two-orgs
-- AND t.DEMAND_ID = <DEMAND_ID>
-- AND t.PLAN_ID = <PLAN_ID>
-- AND t.SR_INSTANCE_ID = <SR_INSTANCE_ID>
-- AND t.USING_ASSEMBLY_DEMAND_DATE >= DATE '<DATE_FROM>'
-- AND t.USING_ASSEMBLY_DEMAND_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.DEMAND_ID;Verified September 2026
Relationships
Diagram of 1-hop neighbors — join details below. FND lookup decode and translation edges are highlighted; they’re the joins newcomers most often get wrong.
Join details
ON MSC_DEMANDS.PLAN_ID = MSC_PLANS.PLAN_ID AND MSC_DEMANDS.ORGANIZATION_ID = MSC_PLANS.ORGANIZATION_IDON MSC_DEMANDS.INVENTORY_ITEM_ID = MSC_SYSTEM_ITEMS.INVENTORY_ITEM_ID AND MSC_DEMANDS.PLAN_ID = MSC_SYSTEM_ITEMS.PLAN_ID AND MSC_DEMANDS.SR_INSTANCE_ID = MSC_SYSTEM_ITEMS.SR_INSTANCE_ID AND MSC_DEMANDS.ORGANIZATION_ID = MSC_SYSTEM_ITEMS.ORGANIZATION_IDON MSC_DEMANDS.DISPOSITION_ID = MSC_SUPPLIES.TRANSACTION_ID AND MSC_DEMANDS.PLAN_ID = MSC_SUPPLIES.PLAN_ID AND MSC_DEMANDS.SR_INSTANCE_ID = MSC_SUPPLIES.SR_INSTANCE_ID AND MSC_DEMANDS.ORGANIZATION_ID = MSC_SUPPLIES.ORGANIZATION_ID
More Planning tables
- MSC_PLANSThe ASCP plan registry — one row per plan with its user-visible name, owning org, type, planning horizon, and run timestamps; every plan-output query starts by picking a row here
- MSC_SUPPLIESEvery supply row in a plan — existing purchase orders, jobs, on-hand, and in-transit alongside the planner's recommended planned orders; the supply side of ASCP plan output
- MSC_SYSTEM_ITEMSThe planning copy of the item master at plan + instance + org + item grain — collected item attributes frozen per plan run, and the bridge column back to the source EBS item
- MRP_FORECAST_DATESThe forecast fact — one row per forecast entry per item, org, forecast name, and date, carrying both the entered quantity and the post-consumption remainder
- MRP_FORECAST_DESIGNATORSThe forecast name and forecast set master per organization — consumption behavior (consume flag, forward/backward time fences, outlier cap) lives at this level
- MRP_SCHEDULE_DATESMDS/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