Search Results required_fields_null
Overview
PA_CLIENT_EXTN_PTE is a client extension package body owned by APPS in the Oracle E-Business Suite, delivered as part of the Oracle Projects (PA) module. Its name reflects its purpose: it is a "PTE" (Projects Time and Expense) client extension package that provides customer-modifiable logic hooks for Oracle Projects time and expense processing. The package is classified in ETRM as an OTHER API rather than a standard public API, meaning Oracle does not guarantee its internal behavior across releases and expects customers to extend it rather than call it. In Oracle EBS 12.1.1 and 12.2.2, this object is shipped as a stub implementation whose default behavior is to defer to profile option settings, giving implementers a controlled extension point for adding validation or approval logic without modifying Oracle-owned code. The package is referenced by three other packages in the APPS schema, indicating that Oracle Projects functionality depends on it as a plug-in interface.
Key Procedures and Functions
Two documented procedures constitute the package interface:
- CHECK_TIME_EXP_PROJ_USER — Determines whether a given user is authorized to enter time or expenses against a project. The procedure accepts a person identifier and an FND user identifier, and returns an approval status plus a message text. When the caller supplies an FND user ID, it is used; otherwise the procedure falls back to the current session user from FND_GLOBAL. The approval flag is resolved from the PA_TIME_EXP_PROJ_USER profile option using FND_PROFILE.VALUE_SPECIFIC, defaulting to 'N' when the profile is not set. The header comment in the source confirms that a parameter was added to support administrative entry through Web Expenses, and Oracle's inline comments explicitly invite customers to customize the procedure with additional validation.
- GET_EXP_AUTOAPPROVAL — Determines whether an expense should be auto-approved. It accepts a source indicator, an expense class code, a transaction identifier, an expense ending date, a person identifier, a timecard table reference, and a module name, and returns an approval flag. The procedure raises a REQUIRED_FIELDS_NULL exception when the source is null, or when the source is 'PA' and no expense class code is supplied. This enforces the minimum input contract before any customer-specific auto-approval rules are applied.
Tables Accessed
The ETRM metadata for this package lists no directly referenced tables through APPS synonyms. This is consistent with its design as a validation and profile-lookup layer: the documented logic reads the PA_TIME_EXP_PROJ_USER profile option value rather than querying application tables directly. Where table-like data is involved, such as the timecard table parameter on GET_EXP_AUTOAPPROVAL, it is passed in by the calling package rather than opened within PA_CLIENT_EXTN_PTE. Any table access introduced by customer extensions becomes the responsibility of the modifiying party.
Usage Notes
PA_CLIENT_EXTN_PTE is not intended to be invoked directly by end users or custom code. It is called by Oracle Projects internal processing, most notably the time and expense entry flows in Web Expenses, and by the three dependent APPS packages identified in the metadata. The default implementation simply returns profile option settings, so behavior visible to users is governed by PA_TIME_EXP_PROJ_USER and related expense auto-approval setup. Implementers customize the package body to introduce site-specific rules, for example restricting project time entry to designated users or enforcing additional auto-approval conditions. Because the package is an unsupported client extension, customizations should be documented and re-applied after upgrades, and the stub should not be altered in ways that change the documented default semantics of returning 'N' when profile data is absent. Testing should cover both the FND user ID passed-in path and the FND_GLOBAL fallback path, since the two produce different authorization results when session context differs from the requested user.