Search Results l_sc




Overview

BOMPIINQ is a public package body in the APPS schema that provides the implosion engine for Oracle Bills of Material in Oracle E-Business Suite releases 12.1.1 and 12.2.2. Implosion is the inverse of explosion: rather than starting from an assembly and descending through its components, an implosion starts from a component or assembly and traverses upward to identify every parent assembly in which it is used. This capability is central to where-used reporting, cost rollup investigations, engineering change impact analysis, and component availability inquiries.

The package header comment states that BOMPIINQ contains two distinct imploders — one for single-level and one for multi-level processing — and that a dispatcher procedure selects the appropriate imploder based on the number of levels requested. All processing is scoped by organization, and the package supports BOM versus Engineering bill selection, implemented versus unimplemented components, effectivity-based display options, and organization scope options including current organization, an organization hierarchy, or all organizations to which the user has access.

Key Procedures and Functions

  • IMPLODER_USEREXIT — The external entry point for the implosion engine. It accepts the organization, sequence identifier, bill type (BOM or ENG), implementation flag, display option, level count, item identifier, implosion date, unit number range, and organization scope attributes, and returns an error message and error code through IN OUT NOCOPY parameters. The documented error contract returns 9999 for a detected loop and the underlying SQL error code for database failures.
  • IMPLOSION — The controlling dispatcher that evaluates the requested number of levels and routes the request to the correct underlying imploder.
  • SL_IMPLODER — Performs single-level implosion, returning only the immediate parent assemblies of the item being queried.
  • ML_IMPLODER — Performs multi-level implosion, recursively traversing upward through all parent levels until the requested depth is reached or no further parents exist.

Tables Accessed

  • BOM_PARAMETERS — Supplies bill of material setup defaults, including the default bill type and effectivity behavior used during traversal.
  • BOM_SMALL_IMPL_TEMP — The temporary working table that holds the intermediate and final implosion result set, driven by the bom_small_impl_temp_s sequence that generates the caller's sequence identifier.
  • MTL_PARAMETERS — Provides organization-level defaults required to resolve the operating context for the implosion.
  • MTL_SYSTEM_ITEMS and MTL_SYSTEM_ITEMS_B — Supply item master attributes for the assembly and parent items encountered during traversal.
  • DUAL — Used for single-row evaluations and sequence or validation lookups.
  • PLITBLM — The PL/SQL index-by table used internally to stage item identifiers and drive the recursive multi-level walk.

Usage Notes

BOMPIINQ is not normally invoked by end users directly. It is called by the Bills of Material where-used inquiry and related implosion screens, by concurrent programs that generate where-used or component impact reports, and by custom PL/SQL that requires recursive parent assembly resolution. Callers must first obtain a unique sequence identifier from bom_small_impl_temp_s, pass it into IMPLODER_USEREXIT, and then read the populated rows from BOM_SMALL_IMPL_TEMP using that same identifier. Error handling must inspect both the returned message and error code, treating 9999 as an indication of a bill structure loop rather than a database fault. Because the package is documented as referenced by zero other packages, it functions as a leaf-level API consumed by forms and custom code rather than as a dependency of other EBS packages.