Search Results cf_subcomp_descformula




Overview

APPS.BOM_BOMRBOMS_XMLP_PKG is the database package that implements the server-side logic for the Oracle Bills of Material Bill of Material Report, commonly referenced by users as the "explosion report." In Oracle EBS 12.1.1 and 12.2.2 the report is published through the XML Publisher (BI Publisher) concurrent program architecture, and this package acts as the PL/SQL wrapper that formats, validates, and supplies the runtime data and layout parameters consumed by the report template.

The package header declares a large set of global variables (P_BOM_OR_ENG, P_COMPO_FLEXDATA, P_LOCATOR_FLEXDATA, P_PRINT_OPTION1 through P_PRINT_OPTION5, P_ORGANIZATION_ID, P_EXPLODE_OPTION_TYPE, P_EXPLOSION_LEVEL, P_EXPLOSION_QUANTITY, and others) that mirror the report's concurrent program parameters. These globals capture the user's selection criteria — organization, item range, category range, revision, alternate designation, explosion level and quantity, indented versus summarized format, and the printed columns to be included — and make them available throughout the report execution lifecycle. The package is owned by APPS and classified as an OTHER API, meaning it is intended for report execution rather than direct external invocation.

Key Procedures and Functions

The package exposes nineteen documented program units. The report lifecycle is bracketed by BEFOREREPORT, which initializes profile values, resolves flexfield structures, and prepares the parameter state before data retrieval, and AFTERREPORT, which performs post-processing and cleanup once the XML output has been generated.

Data retrieval and formatting logic is distributed across several routines: EXPLOSION_REPORT is the central procedure that drives the BOM explosion query and populates the report data, while EXPLODER_USEREXIT provides the user-exit hook used to customize explosion behavior. GET_REV resolves the item revision, and GET_ELE_DESC retrieves descriptive element text for the category/key flexfield columns.

A set of conditional display formula functions controls column visibility in the template based on the P_PRINT_OPTION flags: OPTIONAL_DISPFORMULA, MUTUALLY_DISPFORMULA, CHECK_ATP_DISPFORMULA, REQUIRED_TO_SHIP_DISPFORMULA, REQUIRED_FOR_REVENUE_DISPFORMU, INCLUDE_ON_SHIP_DOCS_DISPFORMU, ENG_BILL_DISPFORMULA, and SUPPLY_TYPE_DISPFORMULA. These correspond to the optional bill attributes (ATP check, required-to-ship, required-for-revenue, include-on-ship-docs, engineering bill, supply type) that a user may elect to print.

Concurrent-formatting helpers resolve derived values for the XML layout: CF_REVISION_DESCFORMULA, CF_ORG_NAMEFORMULA, CF_ITEM_DESCFORMULA, CF_COMP_DESCFORMULA, and CF_SUBCOMP_DESCFORMULA translate organization, item, and component identifiers into their display descriptions.

Tables Accessed

The package reads the core Bills of Material dictionary tables. BOM_LISTS and BOM_LISTS_S provide the bill structure and explosion rows that form the report's body. MTL_SYSTEM_ITEMS_TL supplies item display names and descriptions, while MTL_ITEM_REVISIONS resolves revision codes and revision dates. MTL_PARAMETERS provides organization context, including organization code and default parameters. MTL_CATEGORY_SETS and MTL_DESCRIPTIVE_ELEMENTS supply category set and descriptive element information used in the range and element description logic.

Technical dependencies include DBMS_SQL, used for dynamic SQL construction of range and order-by predicates; DUAL for single-row queries; and PLITBLM, the PL/SQL item table used for item identifier list handling.

Usage Notes

BOM_BOMRBOMS_XMLP_PKG is invoked indirectly by Oracle EBS when the Bill of Material Report concurrent program runs. The XML Publisher data source calls BEFOREREPORT to initialize parameters, EXPLOSION_REPORT to fetch and shape the result set, the various display formula functions when the template renders conditional columns, and AFTERREPORT upon completion. The AUTHID CURRENT_USER declaration means the package executes with the privileges of the calling user.

Because the package is referenced by zero other packages — as confirmed by the ETRM metadata — it is a terminal, report-specific unit rather than a shared library, and it should not be called as a general-purpose API. Customization of the explosion report is normally achieved through the concurrent program's parameters and the XML template rather than by modifying this package; the EXPLODER_USEREXIT hook exists to support controlled extension of explosion logic. The package header footer ($Header: BOMRBOMSS.pls 120.2.12010000.2 2010/02/15) indicates it has been stable since the 12.1.x release and is unchanged into 12.2.2.