Search Results g_transaction_id




Overview

APPS.RCV_PROJECT_PVT is a private PL/SQL package in the Oracle E-Business Suite Receiving module that supports project-related processing for receiving transactions. Its principal business function is to derive and cache project and task accounting attributes for receiving transactions that are linked to project-driven purchasing activity. When a receipt, delivery, or correction is processed against a purchase order distribution that carries project or task references, downstream accounting and interfacing logic requires the associated project number, task number, and related distribution identifiers. This package supplies those values.

The package is classified as a private (PVT) API within the ETRM classification scheme, indicating that it is intended for internal consumption by other Receiving APIs rather than as a public integration interface. It exposes a single documented procedure, SET_PROJECT_TASK_NUMBERS, and maintains package-level state variables, including g_transaction_id, g_project_number, and g_task_number, which are populated during execution and consumed by callers within the Receiving program stack. The presence of the g_transaction_id global is significant: it is reset to NULL when API version compatibility checks fail and otherwise set from the incoming transaction identifier, acting as the package's short-lived session context for the transaction under processing.

The header comment (revision 115.3, dated 11 May 2004) confirms the package's long-standing stability across the 12.1.1 and 12.2.2 releases, with no functional changes required in the intervening upgrade path.

Key Procedures and Functions

  • SET_PROJECT_TASK_NUMBERS — The sole documented program unit. It retrieves the project and task numbers applicable to a given receiving transaction and appends messages to the API message list when errors occur. The procedure follows the standard EBS API initialization pattern: optional message list initialization via FND_MSG_PUB, an FND_API.compatible_api_call version check, and conditional FND_LOG diagnostic output governed by the AFLOG_ENABLED profile option and the PO_DEBUG.is_debug_stmt_on flag. Internally it queries the purchase order line location and distribution identifiers for the transaction (l_line_location_id and l_distribution_id), then resolves the associated project and task identifiers (l_project_id and l_task_id). On failure of the version check, it clears g_transaction_id, g_project_number, and g_task_number. On success, g_transaction_id is assigned the incoming transaction identifier, which then drives the subsequent lookups.

Tables Accessed

  • RCV_TRANSACTIONS — The driving receiving transaction record, supplying the transaction identifier whose project and task context is being resolved.
  • PO_DISTRIBUTIONS_ALL — Provides the purchase order distribution and line location references (PO_LINE_LOCATION_ID, PO_DISTRIBUTION_ID) associated with the transaction, which in turn point to the project and task.
  • PA_PROJECTS_ALL — The Projects source table used to validate and return the project number for the identified project.
  • PA_TASKS — The task definition table used to return the task number for the identified project task.

Usage Notes

RCV_PROJECT_PVT is invoked internally by Receiving processing rather than called directly from user-facing forms or standalone concurrent programs. It is referenced by one other package in the application, consistent with its private API classification. Typical invocation occurs when a receiving transaction tied to project purchasing is created, corrected, or interfaced, at which point the caller requires the project and task numbers for accounting or distribution processing. Custom code should avoid direct calls; the documented integration surface for receiving operations is the public Receiving API set, and reliance on package globals such as g_transaction_id is unsupported. Diagnostic tracing can be enabled through the AFLOG_ENABLED profile option, which causes FND_LOG entries prefixed with the module name to be written.