Search Results pa_moac_utils




Overview

PA_MOAC_UTILS is an Oracle EBS Applications (APPS) PL/SQL package body classified under the Projects (PA) module. Its name reflects its role as a utility layer for Multi-Organization Access Control (MOAC) within Oracle Projects. In EBS 12.1.1 and 12.2.2, MOAC enables a single responsibility and a single application session to operate against multiple operating units, replacing the earlier single-organization (SOAC) model driven by FND_CLIENT_INFO. PA_MOAC_UTILS centralizes the logic that Projects code uses to determine the current operating unit, resolve valid operating units for the session, and enforce access restrictions against the organizations defined in Oracle Projects implementation.

The package is internally focused: ETRM notes that it is not referenced by any database object in the dependency graph, but that it is referenced by 37 other packages, indicating it is a shared helper consumed broadly across Projects APIs and concurrent programs rather than a top-level entry point. It depends on foundation utilities including FND_API, FND_MESSAGE, FND_MSG_PUB, MO_GLOBAL, MO_UTILS, and GMS_INSTALL, which confirms it sits on top of the standard MOAC infrastructure and participates in the FND message stack for error reporting. It is a VALID object in the APPS schema.

Key Procedures and Functions

Nine documented program units make up the package:

  • NAME — identifies the package/module for diagnostic and message purposes.
  • GET_CURRENT_ORG_ID — returns the operating unit (organization_id) currently in effect for the session, typically derived from MO_GLOBAL.
  • GET_OU_NAME — resolves the descriptive name of an operating unit from the organization definition.
  • GET_OU_COUNT — returns the number of operating units accessible to the current user or session.
  • GET_DEFAULT_OU — determines the default operating unit to be applied when no explicit selection exists.
  • GET_VALID_OU — validates and returns an operating unit that the caller is permitted to use.
  • INITIALIZE — performs package-level setup, caching policy context and initialization state for the session.
  • SET_POLICY_CONTEXT — sets the MOAC policy context in the database session, aligning the active operating unit with the Projects policy.
  • CHECK_ACCESS — verifies whether the current user or session has access to a given operating unit, returning an access determination rather than raising unconditionally.

Parameter lists are not reproduced here; callers should consult the package specification in the APPS schema.

Tables Accessed

The documented table references are limited and read-oriented:

  • HR_ALL_ORGANIZATION_UNITS_TL — the translated organization units table, used to resolve operating unit names and language-specific descriptions for display and validation.
  • PA_IMPLEMENTATIONS_ALL — the Oracle Projects implementation table, used to determine which operating units are enabled for Projects and therefore eligible for MOAC scoping.
  • DUAL — used for scalar evaluations such as computing counts or testing session state.

No insert, update, or delete activity against these tables is documented; the package behaves as a read-only resolver.

Usage Notes

PA_MOAC_UTILS is invoked implicitly rather than directly by end users. Projects forms, concurrent programs, and the public Projects APIs call it to establish and verify operating unit context before performing transactional work. Custom extensions that query Projects data across organizations should call SET_POLICY_CONTEXT or INITIALIZE early in the session and use CHECK_ACCESS before exposing data, to remain consistent with standard MOAC behavior. Because the package draws on FND_MSG_PUB and FND_MESSAGE, callers should check the FND message stack after invocation. Given its breadth of reuse across 37 packages, changes to its behavior carry wide impact and should be regression-tested against Projects concurrent programs and forms in both 12.1.1 and 12.2.2.