Search Results pa_cc_utils




Overview

PA_CC_UTILS is a utility package body in the APPS schema that supports Oracle Projects cross-charging functionality. Cross-charging allows expenditure incurred in one operating unit or organization to be charged or transferred to a receiving organization, typically with an associated markup or price adjustment. PA_CC_UTILS provides the shared helper logic on which the cross-charge modules depend, rather than exposing a business-level API of its own. The package carries an API classification of OTHER, reflecting its role as internal infrastructure rather than a public integration interface.

The package is a documented, VALID object in both Oracle EBS 12.1.1 and 12.2.2. Its dependency list confirms this supporting role: it references PA_CC_ORG_RELATIONSHIPS, PA_PLSQL_DATATYPES, PA_DEBUG, FND_PROFILE, PLITBLM (the PL/SQL index-by table type), DUAL, and STANDARD. It is referenced by 25 other packages, indicating broad reuse across the cross-charging code path, while itself not being referenced by any database object outside the call stack it participates in.

Key Procedures and Functions

  • IS_RECEIVER_CONTROL_SETUP — Determines whether the receiver-side control configuration required for cross-charging has been established. It is the primary predicate used by callers to decide whether cross-charge processing can proceed for a given receiving organization.
  • CHECK_PVDR_RCVR_CONTROL_EXIST — Verifies the existence of the provider/receiver control relationship setup between a sending (provider) organization and a receiving organization. This underpins validation before cross-charge transactions are generated.
  • LOG_MESSAGE — Writes diagnostic or error messages to the Projects debugging and logging facility, leveraging the PA_DEBUG dependency. It is used throughout the package and by its callers for traceability during cross-charge processing.
  • SET_CURR_FUNCTION — Establishes the current function context used for logging and diagnostics, allowing messages to be attributed to the routine currently executing. It works in tandem with RESET_CURR_FUNCTION.
  • RESET_CURR_FUNCTION — Clears or restores the current function context previously set by SET_CURR_FUNCTION, ensuring logging state does not leak between processing units.

No parameter signatures are documented in the ETRM metadata, and none are asserted here.

Tables Accessed

  • PA_IMPLEMENTATIONS_ALL — Read to determine the installed Projects implementation and related operating unit context, which governs whether cross-charging controls apply.
  • PA_CC_ORG_RELATIONSHIPS — The central cross-charge organization relationship table. The package reads it to establish provider/receiver relationships and to evaluate whether required control setup exists for a given organization pair.
  • PLITBLM — A PL/SQL index-by table type used in memory rather than a physical application table; it is included in the referenced object list as the collection type underpinning internal array handling.

The dependency on FND_PROFILE further indicates that profile option values are read to resolve cross-charge control behavior. DUAL and STANDARD support basic PL/SQL evaluation.

Usage Notes

PA_CC_UTILS is not intended for direct invocation by end users or external integrations. It is called internally by the cross-charging packages that constitute the 25 dependent objects, and its procedures therefore execute as part of larger cross-charge, price adjustment, and transfer processes initiated from Oracle Projects forms and concurrent programs. Typical entry points include cross-charge setup and validation windows, where IS_RECEIVER_CONTROL_SETUP and CHECK_PVDR_RCVR_CONTROL_EXIST determine whether a receiving organization is properly configured, and batch cross-charge generation programs, where LOG_MESSAGE, SET_CURR_FUNCTION, and RESET_CURR_FUNCTION provide consistent diagnostic output.

In 12.1.1 and 12.2.2 alike, the package remains VALID and unchanged in its documented interface. Custom code should avoid calling it directly; where validation of cross-charge setup is required, the higher-level cross-charge APIs that wrap these utilities should be used instead, since PA_CC_UTILS offers no documented public contract and its behavior is subordinate to the calling processes. Its value lies in centralizing setup checks, profile-driven control logic, and logging so that all cross-charge modules apply the same rules consistently.