Search Results as_utility_pub




Overview

AS_UTILITY_PUB is a public utility API package belonging to the Oracle E-Business Suite Sales Core product family, shipped under the APPS schema. Its header comment, dated 2005, identifies it as a public utility API developed from the Sales Core group, and the ETRM metadata classifies it with an API classification of PUB. In Oracle EBS architecture, a "_PUB" package is the public-facing wrapper layer that a development group publishes for consumption by other modules and by customer extensions. The corresponding "_PVT" package holds the private implementation logic. AS_UTILITY_PUB follows this convention exactly: it holds very little code of its own, and its documented body consists of a single thin wrapper that delegates to AS_UTILITY_PVT.

The package serves a cross-cutting, infrastructure role rather than a business-transaction role. It does not create, validate, or update sales documents; instead, it exposes shared runtime utilities — principally error-message retrieval — that many Sales Core programs must perform identically. Centralizing these routines in a public package ensures consistent behavior across callers and isolates the calling code from changes in the underlying implementation.

Key Procedures and Functions

The ETRM documentation lists exactly one public program unit in this package body: GET_MESSAGES. Its purpose is to retrieve accumulated or pending messages from the Sales Core message stack, returning them to the caller as a single delimited string. The parameters define a message count on input and a message string on output; the documented signature should not be altered or extended by custom code, since the body is a pass-through to the private implementation. The wrapper calls AS_UTILITY_PVT.GET_MESSAGES with the caller's arguments and returns immediately, adding no error handling or transformation of its own. Because the wrapper is stateless and read-only with respect to application data, it is safe to invoke repeatedly within a session, including inside loops and error handlers. Consumers should treat the message string as opaque output and parse it only according to the delimiter convention applied by the private layer.

Tables Accessed

The documented metadata records no tables referenced through APPS synonyms for AS_UTILITY_PUB. This is consistent with its role as a utility wrapper: message text is held in package-level state or in the private package's structures rather than being queried directly from a base table by the public layer. Any persistent message definitions or message-stack storage that the underlying implementation may touch are the responsibility of AS_UTILITY_PVT and are not part of this package's documented contract. Consequently, AS_UTILITY_PUB imposes no direct SQL or DML load on the database and is not a candidate for tuning at the SQL level. Administrators investigating message content should look to the FND message tables and the private package rather than to this public body.

Usage Notes

The most significant operational fact in the metadata is that AS_UTILITY_PUB is referenced by 60 other packages. This makes it a high-fan-in dependency within the APPS schema and a critical path for any upgrade, patch, or code change affecting it. Because the public body is a stable wrapper over AS_UTILITY_PVT, Oracle can revise the private implementation without breaking the 60 dependent callers — this is the principal design benefit of the _PUB/_PVT split. The package is typically invoked from PL/SQL rather than directly from a form or concurrent program: Sales Core packages call GET_MESSAGES when they need to surface validation or processing messages to a user interface or to a log. Custom code may call it in the same way, always qualifying it as APPS.AS_UTILITY_PUB and granting EXECUTE to the calling schema. Before modifying or wrapping it, developers should query the data dictionary for its dependent objects to understand the full impact of any change, since the documented header is dated 2005 and the package has remained essentially unchanged across the 12.1.1 and 12.2.2 releases.