Search Results get_item_rollup_map




Overview

APPS.BOM_ROLLUP_PUB is a public PL/SQL package declared with AUTHID CURRENT_USER that implements the bill of materials rollup engine within Oracle E-Business Suite 12.1.1 and 12.2.2. Its business purpose is to propagate and compute attribute values across a product structure, moving data from the leaf nodes of a BOM hierarchy upward to the parent items. Each object participating in a rollup carries an attribute map whose entries identify a compute function; where no compute function is defined for an attribute, the value is passed through unchanged. The attribute map is derived from object attribute metadata and calling applications are not required to be aware of or directly modify it.

The package supports a set of registered rollup actions, each backed by a rollup function. Rollup processing always executes in reverse topological order, beginning at the leaf nodes and terminating at the parent, so that computed values are available as the process ascends the structure. Rollup functions are invoked once per level in that reverse order and have visibility to all child item objects in the affected subtree.

Key Procedures and Functions

The package exposes twenty documented procedures and functions. The processing backbone includes PERFORM_ROLLUP, which drives the rollup, along with ADD_ROLLUP_FUNCTION and GET_ROLLUP_FUNCTION, which register and retrieve the function associated with a given rollup action. GET_ITEM_ROLLUP_MAP returns the attribute map applicable to an item.

Two propagation entry points are provided for rollup functions to write results: SET_PARENT_ATTRIBUTE, which applies a value at the immediate parent level, and SET_TOP_ITEM_ATTRIBUTE, which applies a value only at the top item of the structure. This distinction matters for attributes such as Top GTIN, whose computation affects only the top level and has no relevance at intermediate levels. Although no restriction prevents calling both methods, the design anticipates that a rollup function will normally use one or the other according to the impact of the attribute.

Context accessors include GET_TOP_ITEM_ID, GET_TOP_ORGANIZATION_ID, GET_CURRENT_ITEM_ID, and GET_CURRENT_ORGANIZATION_ID, allowing rollup logic to determine its position within the hierarchy. Value accessors GET_ATTRIBUTE_VALUE and GET_TOP_ITEM_ATTRIBUTE_VALUE retrieve current and top-level values respectively.

Trade and compliance-related routines include IS_UCCNET_ENABLED, GET_TRADE_ITEM_UNIT_DESCRIPTOR, and IS_PACK_ITEM. Diagnostic support is provided by WRITE_DEBUG_LOG and WRITE_ERROR_LOG.

Tables Accessed

The package reads and writes BOM_EXPLOSIONS_ALL and BOM_STRUCTURES_B to resolve the product structure, and BOM_STRUCTURE_TYPES_B to classify it. BOM_SMALL_IMPL_TEMP supports implementation-side rollup processing. Item master data is obtained from MTL_SYSTEM_ITEMS and MTL_SYSTEM_ITEMS_B, while MTL_PARAMETERS supplies organizational defaults. Category information is drawn from MTL_ITEM_CATEGORIES, MTL_DEFAULT_CATEGORY_SETS, and category set definitions. GTIN and trade item attributes are read from EGO_ITEM_GTN_ATTRS_B and EGO_ITEM_GTN_ATTRS_TL, with EGO_EXTFWK_S providing extensibility framework support. FND_LOOKUP_VALUES resolves lookup-coded values, and DUAL and PLITBLM serve as utility and PL/SQL table references.

Usage Notes

BOM_ROLLUP_PUB is invoked whenever item attributes must be recalculated across a bill of materials, such as during rollup of GTIN or trade item descriptors. It is called from concurrent rollup programs, from item maintenance forms that trigger rollup actions, and from custom PL/SQL that needs to perform hierarchical attribute propagation. The package is referenced by three other packages. Callers register or select rollup functions, invoke PERFORM_ROLLUP, and rely on the reverse topological execution to ensure child values are resolved before parent computation.