Search Results get_transfer_price_ds




Overview

MTL_QP_PRICE is a PL/SQL package owned by the APPS schema in Oracle E-Business Suite, classified under the generic "OTHER" API category. Its documented purpose is to derive and supply intercompany transfer prices for inventory and internal order transactions. When material moves between internal organizations — for example through an internal requisition, an intercompany sales order, or an inventory transfer — Oracle Inventory, Order Management, and Purchasing need a transfer price to value the shipment and the corresponding receipt. MTL_QP_PRICE encapsulates that price-determining logic and exposes it as a callable API rather than embedding it in each calling application. The package header carries a header string dating to 2007, reflecting its long-standing role in the Inventory transaction stack. It is referenced by two other packages, indicating it is itself a dependency in the broader intercompany pricing chain. The name element "QP" associates the package with Oracle Advanced Pricing, suggesting the transfer price may ultimately be resolved through pricing engine rules rather than static values.

Key Procedures and Functions

  • GET_TRANSFER_PRICE — the principal public function. It accepts a transaction context (transaction, selling and shipping operating units, order line, inventory item, organization, UOM, and increment/currency identifiers) and returns the transfer price together with the resolved currency code, transfer price code, and standard return status/message outputs. Supporting parameters distinguish CTO items, request type (defaulting to intercompany, IC), and pricing event. A companion overload, GET_TRANSFER_PRICE_DS, provides a second entry point for the same retrieval.
  • G_HDR_INITIALIZE — initialises header-level processing state for a given header and increment/currency combination.
  • G_LINE_INITIALIZE — initialises line-level state, taking selling and shipping organizations, primary UOM, inventory item, base item, and CTO flag.
  • COPY_HEADER_TO_REQUEST and COPY_LINE_TO_REQUEST — receive the published INV_IC_ORDER_PUB header and line record types and copy them into the package's internal request structures, advancing a line index as they do so.
  • COPY_PROC_HEADER_TO_REQUEST, COPY_PROC_LINE_TO_REQUEST, G_PROC_HDR_INITIALIZE, and G_PROC_LINE_INITIALIZE — parallel variants supporting a second processing path, typically associated with procurement or receiving-side pricing flows.
  • POPULATE_TEMP_TABLE — loads the staged request data into a temporary working structure (PLITBLM) for set-based price resolution.
  • POPULATE_RESULTS — takes the computed prices from the temporary structure and writes them back to the calling context for a given line index.
  • PRINT_DEBUG — diagnostic utility emitting a caller-supplied message for troubleshooting.

Tables Accessed

The package reads and writes a set of APPS synonyms. MTL_INTERCOMPANY_PARAMETERS supplies the intercompany setup that governs whether and how transfer pricing applies between two organizations. MTL_MATERIAL_TRANSACTIONS, MTL_SYSTEM_ITEMS, and MTL_UNITS_OF_MEASURE provide transaction, item, and UOM attributes needed to build the pricing context. OE_ORDER_HEADERS_ALL and OE_ORDER_LINES_ALL supply internal sales order details when the transfer price is driven by an intercompany order. PO_HEADERS_ALL, PO_LINES_ALL, and RCV_TRANSACTIONS cover the purchasing and receiving side of the same movement. PLITBLM is the temporary structure used to stage and resolve prices. V$PARAMETER is queried for database or instance-level settings. These accesses reflect a package that must reconcile pricing across Inventory, Order Management, and Purchasing simultaneously.

Usage Notes

MTL_QP_PRICE is an internal, non-self-service API and is not intended for direct customer invocation. It is normally called by higher-level public APIs and concurrent programs — most notably the intercompany invoice and internal order pricing processes, and by the two packages that reference it. Because it is AUTHID CURRENT_USER, callers must have the necessary APPS privileges and synonyms in place. Customizations should avoid modifying the package and instead call the public GET_TRANSFER_PRICE entry point, respecting the documented IN/OUT parameters and checking X_RETURN_STATUS, X_MSG_COUNT, and X_MSG_DATA before consuming the returned price. The debug procedure should be used only in non-production diagnostics.