Search Results does_pricing_attribute_exist




Overview

QP_PRICE_LIST_PVT is the private pricing engine package in Oracle E-Business Suite (EBS) 12.1.1 and 12.2.2 that underpins the Advanced Pricing module. It belongs to the APPS schema and is classified as a Private (PVT) API, meaning it is intended for internal consumption by other pricing packages rather than direct invocation by external customers. The package encapsulates the core logic for processing, validating, locking, and retrieving price lists and their associated price list lines. A price list in EBS represents a named collection of pricing rules — item qualifiers, pricing attributes, unit of measure, price breaks, and list prices — that the pricing engine evaluates at order entry, quoting, or any other sales transaction to determine the applicable selling price.

The package abstracts the persistence logic behind the public OE_Price_List_PUB API, translating declarative price list and line record structures into validated database operations against QP_LIST_HEADERS and QP_LIST_LINES. It has an API version of 1.0, originated under the OEXVPRLS.pls source file, and is referenced by approximately 40 other packages, which underscores its role as a foundational internal dependency in the pricing stack.

Key Procedures and Functions

The package exposes 13 documented procedures and functions, each serving a distinct role within price list maintenance and retrieval.

  • PROCESS_PRICE_LIST — The principal transactional routine that validates, inserts, updates, or deletes a price list header together with its price list lines. It accepts the public OE_Price_List_PUB record and table types, along with their old-value counterparts for optimistic concurrency, and returns the processed header and line collections.
  • LOCK_PRICE_LIST and GET_PRICE_LIST — Provide pessimistic locking and retrieval semantics respectively for a price list entity prior to modification or consumption.
  • FETCH_LIST_PRICE — Retrieves the effective list price for a given combination of qualifiers and pricing attributes.
  • GET_SECONDARY_PRICE_LIST — Resolves the secondary (for example, converted or alternate-currency) price list associated with a transaction.
  • GET_INVENTORY_ITEM_ID and GET_CUSTOMER_ITEM_ID — Map customer-facing item identifiers and inventory item identifiers against the qualifier and attribute model.
  • GET_PRICING_ATTR_CONTEXT and GET_PRICING_ATTRIBUTE — Resolve pricing attribute contexts and individual pricing attribute values used to qualify a price list line.
  • GET_PRICE_BREAK_HIGH and GET_PRICE_BREAK_LOW — Return the high and low bounds of a price break range, supporting tiered and volume-based pricing.
  • GET_PRODUCT_UOM_CODE — Returns the unit of measure code associated with a product line.
  • DOES_PRICING_ATTRIBUTE_EXIST — The function most commonly searched for by developers and consultants. It validates whether a given pricing attribute is defined for the pricing context under evaluation, and is typically used to guard conditional pricing logic or to diagnose why a price list line is or is not qualifying.

Tables Accessed

The package operates against a focused set of pricing and inventory tables accessed through APPS synonyms. QP_LIST_HEADERS and its base table QP_LIST_HEADERS_B store price list header definitions. QP_LIST_LINES holds the individual pricing rules, including qualifier and product associations. QP_QUALIFIERS stores the qualifier definitions used to scope price list lines, while QP_PRICING_ATTRIBUTES stores attribute definitions that further constrain qualification. MTL_SYSTEM_ITEMS and MTL_UNITS_OF_MEASURE provide inventory item validation and unit of measure information. PLITBLM is the pricing attribute context mapping table used by the attribute-resolution routines. Reads dominate for the GET_* and FETCH_* routines; writes occur through PROCESS_PRICE_LIST.

Usage Notes

QP_PRICE_LIST_PVT is invoked indirectly through the public OE_Price_List_PUB API, which is called by the Advanced Pricing setup forms, the Pricing Engine, order entry forms, and concurrent programs that import or validate price lists. It is also referenced by 40 other packages across the pricing and order management domains. The presence of the p_api_version_number, p_init_msg_list, p_commit, and p_validation_level parameters follows the standard EBS API error-handling and transaction-control conventions. Because the package is classified PVT, customizations should call OE_Price_List_PUB rather than QP_PRICE_LIST_PVT directly; nevertheless, utility functions such as DOES_PRICING_ATTRIBUTE_EXIST are sometimes invoked diagnostically in SQL queries against the live schema. Direct updates to the underlying QP tables are strongly discouraged, as they bypass the validation and attribute-resolution logic implemented here.