Skip to content
EBS Reference

BOM_STRUCTURES_B

Schema: BOMmasterPer inventory org

The bill-of-material header — one bill per assembly item, organization, and alternate designator (manufacturing or engineering), with the common-bill pointer that lets organizations share one structure

Identity
Module: BOM & CostingInventory-org partitioned (ORGANIZATION_ID)
Fusion equivalents (2)
Notes

NULL ALTERNATE_BOM_DESIGNATOR is the primary bill — alternates add rows per assembly, so filter them or double-count structures. When COMMON_BILL_SEQUENCE_ID differs from the bill's own id, the components live under the common bill — resolve it first. The familiar BOM_BILL_OF_MATERIALS name is a view over this 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.

Structural facts — how the table is partitioned, not a trap by itself

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 with ORGANIZATION_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 LANGUAGE column (a _TL translation table or FND_LOOKUP_VALUES) — one row per language. Filter to one LANGUAGE or a join multiplies rows (see the quirks guide).

Join & extract hazards — verify before you rely on this

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.
In field listings, the Key chip marks a primary-key field.

Header & line

BOM_STRUCTURES_B is the header for its lines in BOM_COMPONENTS_B.

Fields

12 fields · 1 key

12 fields.

Table fields: position, field name, description, data type, and flags. 12 fields.
#FieldDescriptionTypeFlags
1BILL_SEQUENCE_IDSurrogate key of the bill — what components hang offNUMBER
Primary-key field
2ASSEMBLY_ITEM_IDThe assembly item the bill buildsNUMBER
3ORGANIZATION_IDOwning inventory organizationNUMBER
4ALTERNATE_BOM_DESIGNATORNULL for the primary bill — alternates add rows per assembly and orgVARCHAR2
5ASSEMBLY_TYPE1 = manufacturing, 2 = engineering (per the data dictionary's own comment)NUMBER
6COMMON_BILL_SEQUENCE_IDThe shared bill the components actually live under — equals the own id when the bill is not commonNUMBER
7COMMON_ASSEMBLY_ITEM_IDAssembly of the common bill, when commonNUMBER
8COMMON_ORGANIZATION_IDOrganization of the common bill — commons can cross orgsNUMBER
9EFFECTIVITY_CONTROLDate vs unit effectivity control for the structureNUMBER
10IMPLEMENTATION_DATEWhen the bill was implemented — NULL for pending engineering billsDATE
The table's primary analysis date — a real DATE column, no conversion needed
11PENDING_FROM_ECNThe change notice that created a pending billVARCHAR2
12OBJ_NAMEPLM object name — NULL on classic item bills; the legacy views filter on itVARCHAR2

Field provenance: hand-curated. 1 key field.

Boilerplate SQL

Starting point for reading BOM_STRUCTURES_B 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.

Query parameters

7 parameters not filled: <catalog>, <schema>, <inventory_org_id>, <BILL_SEQUENCE_ID>, <DATE_FROM>, <DATE_TO>, <watermark>

-- ============================================================
-- Table  : BOM_STRUCTURES_B — The bill-of-material header — one bill per assembly item, organization, and alternate designator (manufacturing or engineering), with the common-bill pointer that lets organizations share one structure
-- Purpose: Column-selected read of BOM_STRUCTURES_B — auto-generated from field metadata
-- Grain  : One row per inventory org (ORGANIZATION_ID) + BILL_SEQUENCE_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.BILL_SEQUENCE_ID AS "Surrogate key of the bill — what components hang off",
  t.ASSEMBLY_ITEM_ID AS "The assembly item the bill builds",
  t.ORGANIZATION_ID AS "Owning inventory organization",
  t.ALTERNATE_BOM_DESIGNATOR AS "NULL for the primary bill — alternates add rows per assembly and org",
  t.ASSEMBLY_TYPE AS "1 = manufacturing, 2 = engineering (per the data dictionary's own comment)",
  t.COMMON_BILL_SEQUENCE_ID AS "The shared bill the components actually live under — equals the own id when the bill is not common",
  t.COMMON_ASSEMBLY_ITEM_ID AS "Assembly of the common bill, when common",
  t.COMMON_ORGANIZATION_ID AS "Organization of the common bill — commons can cross orgs",
  t.EFFECTIVITY_CONTROL AS "Date vs unit effectivity control for the structure",
  t.IMPLEMENTATION_DATE AS "When the bill was implemented — NULL for pending engineering bills",
  t.PENDING_FROM_ECN AS "The change notice that created a pending bill",
  t.OBJ_NAME AS "PLM object name — NULL on classic item bills; the legacy views filter on it"
FROM <catalog>.<schema>.BOM_STRUCTURES_B t
WHERE
  t.ORGANIZATION_ID = <inventory_org_id>  -- inventory org, NOT the operating unit — see quirks guide #two-orgs
  -- AND t.BILL_SEQUENCE_ID = <BILL_SEQUENCE_ID>
  -- AND t.IMPLEMENTATION_DATE >= DATE '<DATE_FROM>'
  -- AND t.IMPLEMENTATION_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.BILL_SEQUENCE_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

  • BOM_STRUCTURES_BBOM_COMPONENTS_Bheader line · 1:N
    ON BOM_STRUCTURES_B.BILL_SEQUENCE_ID = BOM_COMPONENTS_B.BILL_SEQUENCE_ID
  • BOM_STRUCTURES_BMTL_SYSTEM_ITEMS_Bforeign key · N:1
    ON BOM_STRUCTURES_B.ASSEMBLY_ITEM_ID = MTL_SYSTEM_ITEMS_B.INVENTORY_ITEM_ID AND BOM_STRUCTURES_B.ORGANIZATION_ID = MTL_SYSTEM_ITEMS_B.ORGANIZATION_ID
  • BOM_STRUCTURES_BMTL_PARAMETERSforeign key · N:1
    ON BOM_STRUCTURES_B.ORGANIZATION_ID = MTL_PARAMETERS.ORGANIZATION_ID
  • BOM_STRUCTURES_BBOM_STRUCTURES_Bforeign key · N:1
    ON BOM_STRUCTURES_B1.COMMON_BILL_SEQUENCE_ID = BOM_STRUCTURES_B2.BILL_SEQUENCE_ID AND BOM_STRUCTURES_B1.ORGANIZATION_ID = BOM_STRUCTURES_B2.ORGANIZATION_ID
  • BOM_BILL_OF_MATERIALSBOM_STRUCTURES_Bforeign key · 1:1
    ON BOM_BILL_OF_MATERIALS.BILL_SEQUENCE_ID = BOM_STRUCTURES_B.BILL_SEQUENCE_ID AND BOM_BILL_OF_MATERIALS.ORGANIZATION_ID = BOM_STRUCTURES_B.ORGANIZATION_ID
  • WIP_DISCRETE_JOBSBOM_STRUCTURES_Bforeign key · N:1
    ON WIP_DISCRETE_JOBS.COMMON_BOM_SEQUENCE_ID = BOM_STRUCTURES_B.BILL_SEQUENCE_ID AND WIP_DISCRETE_JOBS.ORGANIZATION_ID = BOM_STRUCTURES_B.ORGANIZATION_ID

Browse more BOM & Costing tables

More BOM & Costing tables

Maintained by Summit Analytics, a supply chain analytics practice. The tools and references are free — the consulting is selective.

Part of the Summit Analytics reference library.

Work with the practice

Not affiliated with or endorsed by Oracle. Oracle and Oracle E-Business Suite are registered trademarks of Oracle and/or its affiliates.