WIP_DISCRETE_JOBS
Schema: WIPtransactionPer inventory orgDiscrete job detail — status, start/completed/scrapped quantities, scheduled vs actual dates, accounting class, and the BOM/routing the job was built from; the workhorse of job-level manufacturing analytics
Open quantity is arithmetic — START_QUANTITY − QUANTITY_COMPLETED − QUANTITY_SCRAPPED; there is no stored open column
STATUS_TYPE is numeric and its code list is documented by name only (unreleased, released, complete, closed…) — decode from your instance's manufacturing lookups, never from a blog's number list. Component issues and completions live in the material transaction ledger under a WIP source type — a polymorphic reference, so no edge is drawn.
What the badges mean
- master
- Data class: what the table holds — master data, transaction documents, control/configuration, interface/staging, or an APPS-schema view.
Header & line
WIP_DISCRETE_JOBS is the header for its lines in WIP_OPERATIONS.
Fields
20 fields · 2 key
| # | Field | Description | Type | Flags |
|---|---|---|---|---|
| 1 | WIP_ENTITY_ID | The job id — key together with the organization | NUMBER | Key |
| 2 | ORGANIZATION_ID | Inventory organization — part of the key | NUMBER | Key |
| 3 | STATUS_TYPE | Job status — numeric; Oracle documents the statuses by name only (unreleased, released, complete, closed…), so the codes ship undecoded | NUMBER | |
| 4 | PRIMARY_ITEM_ID | The assembly item the job builds | NUMBER | |
| 5 | CLASS_CODE | The WIP accounting class — joins with the org | VARCHAR2 | |
| 6 | JOB_TYPE | Standard vs non-standard job | NUMBER | |
| 7 | FIRM_PLANNED_FLAG | Whether planning may reschedule the job | NUMBER | |
| 8 | WIP_SUPPLY_TYPE | Default supply method for the job's components | NUMBER | |
| 9 | START_QUANTITY | Job start quantity | NUMBER | |
| 10 | QUANTITY_COMPLETED | Quantity completed to date | NUMBER | |
| 11 | QUANTITY_SCRAPPED | Quantity scrapped to date | NUMBER | |
| 12 | NET_QUANTITY | The quantity planning nets as supply | NUMBER | |
| 13 | SCHEDULED_START_DATE | Scheduled start — the plan-side analysis date | DATE | Filter date |
| 14 | SCHEDULED_COMPLETION_DATE | Scheduled completion of the last unit | DATE | |
| 15 | DATE_RELEASED | Actual release date | DATE | |
| 16 | DATE_COMPLETED | Actual last-unit completion | DATE | |
| 17 | DATE_CLOSED | When the job closed | DATE | |
| 18 | COMPLETION_SUBINVENTORY | Where completed assemblies land | VARCHAR2 | |
| 19 | COMMON_BOM_SEQUENCE_ID | The bill the job was built against | NUMBER | |
| 20 | COMMON_ROUTING_SEQUENCE_ID | The routing the job was built against | NUMBER |
Field provenance: hand-curated. 2 key fields.
Boilerplate SQL
Starting point for reading WIP_DISCRETE_JOBSon 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 : WIP_DISCRETE_JOBS — Discrete job detail — status, start/completed/scrapped quantities, scheduled vs actual dates, accounting class, and the BOM/routing the job was built from; the workhorse of job-level manufacturing analytics
-- Purpose: Column-selected read of WIP_DISCRETE_JOBS — auto-generated from field metadata
-- Grain : One row per inventory org (ORGANIZATION_ID) + WIP_ENTITY_ID
-- Caution: Open quantity is arithmetic — START_QUANTITY − QUANTITY_COMPLETED − QUANTITY_SCRAPPED; there is no stored open column
-- 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.WIP_ENTITY_ID AS "The job id — key together with the organization",
t.ORGANIZATION_ID AS "Inventory organization — part of the key",
t.STATUS_TYPE AS "Job status — numeric; Oracle documents the statuses by name only (unreleased, released, complete, closed…), so the codes ship undecoded",
t.PRIMARY_ITEM_ID AS "The assembly item the job builds",
t.CLASS_CODE AS "The WIP accounting class — joins with the org",
t.JOB_TYPE AS "Standard vs non-standard job",
t.FIRM_PLANNED_FLAG AS "Whether planning may reschedule the job",
t.WIP_SUPPLY_TYPE AS "Default supply method for the job's components",
t.START_QUANTITY AS "Job start quantity",
t.QUANTITY_COMPLETED AS "Quantity completed to date",
t.QUANTITY_SCRAPPED AS "Quantity scrapped to date",
t.NET_QUANTITY AS "The quantity planning nets as supply",
t.SCHEDULED_START_DATE AS "Scheduled start — the plan-side analysis date",
t.SCHEDULED_COMPLETION_DATE AS "Scheduled completion of the last unit",
t.DATE_RELEASED AS "Actual release date",
t.DATE_COMPLETED AS "Actual last-unit completion",
t.DATE_CLOSED AS "When the job closed",
t.COMPLETION_SUBINVENTORY AS "Where completed assemblies land",
t.COMMON_BOM_SEQUENCE_ID AS "The bill the job was built against",
t.COMMON_ROUTING_SEQUENCE_ID AS "The routing the job was built against"
FROM <catalog>.<schema>.WIP_DISCRETE_JOBS t
WHERE
t.ORGANIZATION_ID = <inventory_org_id> -- inventory org, NOT the operating unit — see quirks guide #two-orgs
-- AND t.WIP_ENTITY_ID = <WIP_ENTITY_ID>
-- AND t.SCHEDULED_START_DATE >= DATE '<DATE_FROM>'
-- AND t.SCHEDULED_START_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.WIP_ENTITY_ID;7 parameters not filled: <catalog>, <schema>, <inventory_org_id>, <WIP_ENTITY_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 WIP_DISCRETE_JOBS.WIP_ENTITY_ID = WIP_ENTITIES.WIP_ENTITY_ID AND WIP_DISCRETE_JOBS.ORGANIZATION_ID = WIP_ENTITIES.ORGANIZATION_IDON WIP_DISCRETE_JOBS.PRIMARY_ITEM_ID = MTL_SYSTEM_ITEMS_B.INVENTORY_ITEM_ID AND WIP_DISCRETE_JOBS.ORGANIZATION_ID = MTL_SYSTEM_ITEMS_B.ORGANIZATION_IDON WIP_DISCRETE_JOBS.CLASS_CODE = WIP_ACCOUNTING_CLASSES.CLASS_CODE AND WIP_DISCRETE_JOBS.ORGANIZATION_ID = WIP_ACCOUNTING_CLASSES.ORGANIZATION_IDON WIP_DISCRETE_JOBS.COMMON_BOM_SEQUENCE_ID = BOM_STRUCTURES_B.BILL_SEQUENCE_ID AND WIP_DISCRETE_JOBS.ORGANIZATION_ID = BOM_STRUCTURES_B.ORGANIZATION_IDON WIP_DISCRETE_JOBS.COMMON_ROUTING_SEQUENCE_ID = BOM_OPERATIONAL_ROUTINGS.ROUTING_SEQUENCE_ID AND WIP_DISCRETE_JOBS.ORGANIZATION_ID = BOM_OPERATIONAL_ROUTINGS.ORGANIZATION_IDON WIP_DISCRETE_JOBS.WIP_ENTITY_ID = WIP_OPERATIONS.WIP_ENTITY_ID AND WIP_DISCRETE_JOBS.ORGANIZATION_ID = WIP_OPERATIONS.ORGANIZATION_IDON WIP_REQUIREMENT_OPERATIONS.WIP_ENTITY_ID = WIP_DISCRETE_JOBS.WIP_ENTITY_ID AND WIP_REQUIREMENT_OPERATIONS.ORGANIZATION_ID = WIP_DISCRETE_JOBS.ORGANIZATION_IDON WIP_MOVE_TRANSACTIONS.WIP_ENTITY_ID = WIP_DISCRETE_JOBS.WIP_ENTITY_ID AND WIP_MOVE_TRANSACTIONS.ORGANIZATION_ID = WIP_DISCRETE_JOBS.ORGANIZATION_IDON WIP_TRANSACTIONS.WIP_ENTITY_ID = WIP_DISCRETE_JOBS.WIP_ENTITY_ID AND WIP_TRANSACTIONS.ORGANIZATION_ID = WIP_DISCRETE_JOBS.ORGANIZATION_ID