Search Results mtl_item_catalog_groups_util




Overview

The APPS.MTL_ITEM_CATALOG_GROUPS_UTIL package is a low-level utility (UTIL classification) PL/SQL package in Oracle E-Business Suite that encapsulates DML operations against the Item Catalog Groups. Item Catalog Groups define the extensible attribute sets used to describe items within Oracle Inventory — for example, the descriptive elements a purchasing or inventory user must populate when defining or classifying an item. The package provides the standard insert, lock, update, and delete primitives that Oracle Forms and other client-side or server-side components invoke to persist catalog group definitions, along with a language maintenance routine used by the multi-language (MLS) infrastructure.

It is declared with AUTHID CURRENT_USER, meaning that its SQL statements execute with the privileges of the invoking schema rather than the defining (APPS) schema. This is a deliberate design choice in the Oracle EBS technical stack, intended to allow the same package to be used in multiple trust contexts while relying on APPS synonyms for object resolution. The package header identifies itself with a revision marker from 2002 (INVICGUS.pls 115.2), confirming its lineage as part of the original Inventory forms support layer.

Key Procedures and Functions

  • INSERT_ROW — Inserts a new catalog group record into the base table using a full row-type parameter describing the MTL_ITEM_CATALOG_GROUPS row. It returns the ROWID of the newly created row so callers can subsequently lock or reference the record without re-querying.
  • LOCK_ROW — Acquires a row-level lock on the catalog group identified by the supplied record, providing optimistic concurrency control before an update or delete is performed by the calling form.
  • UPDATE_ROW — Applies modifications to an existing catalog group row, again using a complete row-type parameter that carries the changed column values.
  • DELETE_ROW — Removes a catalog group row, identified by its primary key value (ITEM_CATALOG_GROUP_ID).
  • ADD_LANGUAGE — Populates or maintains translated (TL) rows for the catalog group entity. This routine participates in the Oracle EBS multi-language support (MLS) mechanism, propagating base definitions into the appropriate language-specific tables.

Tables Accessed

  • MTL_ITEM_CATALOG_GROUPS — The primary base table holding the catalog group definitions that the insert, lock, update, and delete routines manipulate.
  • MTL_ITEM_CATALOG_GROUPS_B — The “base” MLS table used to store language-independent attributes for catalog groups.
  • MTL_ITEM_CATALOG_GROUPS_TL — The translation table storing language-specific (translatable) attribute values for each catalog group.
  • FND_LANGUAGES — The Oracle Application Object Library reference table of installed and active languages, consulted by ADD_LANGUAGE to determine which language rows must be created or refreshed.

Access to these objects is performed through APPS synonyms, as noted in the package metadata.

Usage Notes

This package is a classic Forms-generated utility and is most commonly invoked indirectly by the Item Catalog Groups maintenance form and other Inventory setup screens rather than by end-user code directly. Oracle does not generally document these UTIL packages as public APIs; they are considered internal implementation details and their signatures may change between patch levels or releases (12.1.1 vs. 12.2.2).

Customizations and extensions should prefer officially supported public APIs — for example the item catalog group APIs in the INV_ITEM_CATALOG_GROUP_PUB family — rather than calling this utility directly. If the package must be referenced from custom PL/SQL, callers should treat it as a low-level DML layer, performing validation, security checks, and multi-language synchronization explicitly. The metadata records that no other packages reference it (referenced-by count of zero), reinforcing that it is a terminal utility invoked by forms and concurrent programs at the application edge rather than a shared library consumed elsewhere in the PL/SQL stack.