Search Results qp_lock_pricelist_pvt




Overview

QP_LOCK_PRICELIST_PVT is a private PL/SQL package in the Oracle Advanced Pricing (QP) module of Oracle E-Business Suite. Its designation as a private (PVT) API indicates that it is intended for internal use by other Oracle Advanced Pricing components rather than as a public, supported interface for customer extensions. The package provides the locking mechanism that Advanced Pricing applies to price list headers and price list lines during pricing and order-capture operations, ensuring that concurrent transactions do not read or modify the same pricing records inconsistently.

The package header carries the version identifier QPXLKPLS.pls 120.2 (dated 2005/10/13), which reflects the long-standing stability of this component across EBS releases including 12.1.1 and 12.2.2. A global constant, G_PKG_NAME, holds the package name for use in error handling and message construction. The package also exposes MOAC support through an organization identifier parameter, reflecting the multi-org architecture introduced in Release 12.

Key Procedures and Functions

The package contains a single documented procedure:

  • Lock_Price — Acquires a lock on a price list and/or a specific price list line. The procedure accepts the source price list identifier and, optionally, the source list line identifier, and returns the identifiers of the records actually locked. It also reports outcome through the standard EBS concurrent-style return parameters (message count, message data, return status) and outputs the locked price list and line identifiers. Supporting parameters include a startup mode flag, an original system header reference, an organization identifier for multi-org (MOAC) security, and a commit indicator that determines whether the locking transaction is committed immediately. The MOAC parameter and the original system header reference reflect incremental enhancements applied for cross-module integrations, including support for Oracle OKS as noted in the source header.

Tables Accessed

The lock operation interacts with the core Advanced Pricing pricing-entity tables, referenced through APPS synonyms:

  • QP_LIST_HEADERS_B — The base table storing price list header definitions. Locking the header prevents concurrent modification of the price list while its lines are being evaluated or applied.
  • QP_LIST_LINES — Stores individual price list lines (the actual prices, modifiers, and qualification rules). The procedure can lock a specific line by identifier.
  • QP_RLTD_MODIFIERS — Holds relationships between modifiers, enabling the lock logic to account for dependent or related pricing records.
  • PLITBLM — The price list line interface/base table used during pricing line resolution, accessed as part of the locking path.

Usage Notes

QP_LOCK_PRICELIST_PVT is invoked internally by Advanced Pricing and dependent modules rather than directly by end users. The metadata indicates that the package is referenced by one other package, confirming its role as a subordinate utility consumed by a higher-level public API or processing routine. Typical invocation contexts include order capture and pricing flows where the pricing engine must guarantee that a price list or line is not altered between evaluation and application. The p_startup_mode parameter supports initialization-time locking scenarios, while p_commit allows callers to control transaction boundaries — a caller that must lock several objects atomically would pass 'N' and manage the commit itself.

Because this is a private package, Oracle does not guarantee backward compatibility of its signature, and the parameter list has historically changed with bug fixes (for example, the OKS-related and MOAC additions visible in the header). Custom code should therefore invoke the supported public Advanced Pricing APIs or the reference from the one dependent package instead of calling Lock_Price directly. When diagnosing pricing concurrency issues, DBAs can use the package name as a search key in trace files and the EBS log to confirm that locking is occurring as expected.