Results for “update_attributes”

50+ results




AI-generated from documented ETRM metadata — verify critical details on the linked pages.

Overview

INVUPDAT is a PL/SQL package body owned by the APPS schema in Oracle E-Business Suite 12.1.1 and 12.2.2. It is classified under the ETRM API classification OTHER, meaning it is not registered as a public, supported open interface but is instead an internal utility used by Oracle's Inventory application logic. The package's central business function is the propagation of item status attribute values into the item master. In Oracle Inventory, item statuses (such as Active, Inactive, or user-defined statuses) carry a set of attribute values stored in the MTL_STATUS_ATTRIBUTE_VALUES table. When those status attribute values change, the corresponding enablement flags on the item record in MTL_SYSTEM_ITEMS must be synchronized so that transaction processing respects the new restrictions. INVUPDAT performs that synchronization. The package is referenced by one other package in the ETRM repository, confirming its role as a subordinate utility rather than a standalone entry point. The header comment dates the source to 2005, indicating a long-stable component of the Inventory codebase that has been carried forward through the 12.1.1 and 12.2.2 releases.

Key Procedures and Functions

The ETRM metadata documents a single procedure within this package body: UPDATE_ATTRIBUTES.

  • UPDATE_ATTRIBUTES — Updates the relevant enablement attribute on item master records to match the attribute value defined for a given item status. The procedure accepts the attribute name being changed, an optional attribute value, and an optional input status, allowing it to operate either against a single status or across all statuses that define the named attribute.

The procedure's internal logic, as reflected in the source excerpt, first opens a cursor (status_cursor) that joins MTL_ITEM_STATUS to MTL_STATUS_ATTRIBUTE_VALUES to retrieve the attribute value for the requested attribute and status. A second cursor (lock_records) selects matching rows from MTL_SYSTEM_ITEMS FOR UPDATE OF last_update_date NOWAIT. The source comments state explicitly that this locking is scoped only to records that may be updated, preventing the session from hanging when an item record is open and locked by another user. The DECODE expression in the lock cursor maps attribute names such as MTL_SYSTEM_ITEMS.STOCK_ENABLED_FLAG, MTL_TRANSACTIONS_ENABLED_FLAG, PURCHASING_ENABLED_FLAG, INVOICE_ENABLED_FLAG, BUILD_IN_WIP_FLAG, CUSTOMER_ORDER_ENABLED_FLAG, INTERNAL_ORDER_ENABLED_FLAG, BOM_ENABLED_FLAG, RECIPE_ENABLED_FLAG, and PROCESS_EXECUTION_ENABLED_FLAG to the corresponding flag columns on MTL_SYSTEM_ITEMS. The procedure also retrieves a debug level through INVPUTLI.get_debug_level, referencing Bug 4667452, so that diagnostic output can be controlled through the standard Inventory debug mechanism.

Tables Accessed

  • MTL_SYSTEM_ITEMS — The item master. This is the primary table written by UPDATE_ATTRIBUTES, where item enablement flags are synchronized with status attribute values. Rows are locked with NOWAIT before update.
  • MTL_ITEM_STATUS — Defines inventory item statuses and their relationship to attribute values. Read by the status cursor to determine which statuses apply.
  • MTL_STATUS_ATTRIBUTE_VALUES — Stores the attribute values assigned to each item status. Read by the status cursor to resolve the target value for the named attribute.

All three tables are referenced through APPS synonyms, consistent with standard EBS naming conventions.

Usage Notes

INVUPDAT is an internal package and is not intended for direct invocation by customers or custom code. It is normally called indirectly when item status attribute values are modified — for example, from the Item Status setup or related Inventory forms — so that the item master flags remain consistent with status definitions. Because the package is referenced by one other package, callers should treat INVUPDAT as a dependency rather than a documented API. Customizations that need to change item enablement flags should use the supported item APIs (such as INV_ITEM_PUB) rather than calling UPDATE_ATTRIBUTES directly. The use of FOR UPDATE NOWAIT means concurrent maintenance of the same item record can raise an exception rather than block, so batch operations should avoid overlapping items. In 12.2.2 the same package behavior applies; the ETRM classification remains OTHER.