Search Results qp_util_w




Overview

QP_UTIL_W is a utility package body in the APPS schema that supports Oracle Advanced Pricing (formerly Oracle Pricing) within Oracle E-Business Suite 12.1.1 and 12.2.2. Its name, combining the QP module prefix with the "_W" suffix, indicates that it is a web-facing companion to the core QP_UTIL package. QP_UTIL_W is classified under the ETRM documentation as an API type of "OTHER," meaning it is an internal helper package rather than a public, standalone integration API. Its principal responsibilities are the validation of pricing flexfields, the retrieval and ordering of flexfield segments, the correction of date ranges, the construction of list-of-values queries for the Oracle Applications Framework (OAF) user interface, and the movement of data between PL/SQL collections and database tables through generated Rosetta (interface table) copy routines. These functions are fundamental to the pricing engine's ability to interpret context and qualifier flexfield structures at runtime and to present those structures to users of the pricing setup forms.

Key Procedures and Functions

The package exposes twelve documented procedures and functions, which fall into four functional groups.

  • Rosetta table copy routinesROSETTA_TABLE_COPY_IN_P1, ROSETTA_TABLE_COPY_OUT_P1, ROSETTA_TABLE_COPY_IN_P41, ROSETTA_TABLE_COPY_OUT_P41, ROSETTA_TABLE_COPY_IN_P43, and ROSETTA_TABLE_COPY_OUT_P43. The "_IN_" variants transfer data from PL/SQL collection structures into database tables, while the "_OUT_" variants retrieve rows from tables into collections. The suffixes P1, P41, and P43 denote distinct profile or partitioning variants that correspond to different Rosetta interface table definitions used by the pricing migration and bulk-load utilities.
  • Flexfield validationVALIDATE_QP_FLEXFIELD checks the correctness of a pricing flexfield definition or a supplied flexfield value against the pricing context and qualifier structures, returning a validation result to the caller.
  • Segment retrievalGET_SEGS_FOR_FLEX returns the segments belonging to a given pricing flexfield, while GET_SEGS_FLEX_PRECEDENCE returns those segments in the precedence order that the pricing engine must apply when resolving context values. These routines are essential to the deterministic evaluation of pricing qualifiers.
  • Date and UI helpersCORRECT_ACTIVE_DATES normalizes or repairs effective start and end dates for pricing entities so that overlapping or inverted ranges are brought into a valid state. WEB_CREATE_CONTEXT_LOV and WEB_CREATE_ATTRIBUTE_LOV build the list-of-values queries that populate the context and attribute selection fields in the web-based pricing user interface.

Tables Accessed

According to the documented metadata, QP_UTIL_W references only one table through an APPS synonym: PLITBLM. PLITBLM is the standard Oracle Applications "PL/SQL Interface Table List Members" table, an internal structure that holds the members of a PL/SQL table (associative array), including string values, numeric values, and their indexes. Its presence confirms that the package relies on PL/SQL table types—specifically the JTF_NUMBER_TABLE, JTF_VARCHAR2_TABLE_100, and JTF_VARCHAR2_TABLE_300 collection types listed among its dependencies—and that PLITBLM is used as the transient storage mechanism supporting the Rosetta copy routines and other collection-oriented processing within the package.

Usage Notes

QP_UTIL_W is an internal support package and is not intended for direct invocation by customers or integrators. It is called by the Oracle Advanced Pricing setup forms, by the web-based (OAF) pricing pages that require context and attribute list-of-values queries, and by the pricing migration and bulk-processing programs that use the Rosetta copy routines to load and extract interface data. The dependency metadata shows that QP_UTIL_W references the FND_API package for the standard API return-status and message-handling conventions, QP_UTIL for shared pricing utilities, and the JTF collection types. It is not referenced by any other database object, underscoring its role as a leaf-level utility rather than a reusable public API. Because the procedures are subject to change between patch levels, custom code should not call QP_UTIL_W directly; instead, customizations should use the supported Oracle Advanced Pricing public APIs, which in turn invoke this package internally.