Search Results g_customer_code
Overview
APPS.PA_PROJECT_CHECK_PVT is a private PL/SQL package body within the Oracle E-Business Suite Projects (PA) module. It functions as the internal validation engine for project and task structural integrity, providing the boolean-style "is it OK to perform this operation" checks that underpin the public project and task maintenance APIs. The package encapsulates the business rules governing whether a task, project, or organizational change may be committed, returning a simple indicator ('Y' or 'N') together with the standard FND_API messaging structures. Within the Oracle EBS 12.1.1 and 12.2.2 releases the package is classified as PVT (private), meaning it is intended for consumption by the public PA packages rather than by customer code directly.
The package is dated by the source header "PAPMPCVB.pls 120.17", with the most recent documented revision dated 18-Nov-2011. Its history dates to August 1996, reflecting a lineage that spans the earliest project management implementations through the multi-org restructuring introduced with PA_PROJECTS_ALL. Although classified private, the header refers to itself in error messages as G_PKG_NAME := 'PA_PROJECT_CHECK_PUB', an artifact of the public/private pairing convention used throughout the PA schema.
Key Procedures and Functions
The 15 documented subprograms group into four functional families:
- Deletion validation: CHECK_DELETE_TASK_OK_PVT determines whether a task may be deleted, while CHECK_DELETE_PROJECT_OK_PVT performs the equivalent test at the project level, protecting against deletion of structures that other records still depend upon.
- Addition and hierarchy validation: CHECK_ADD_SUBTASK_OK_PVT validates the creation of a subtask beneath a given parent; CHECK_CHANGE_PARENT_OK_PVT verifies that re-parenting a task preserves a legal hierarchy; CHECK_PARENT_CHILD_TK_DTS_PVT validates date consistency between a parent task and its children.
- Uniqueness validation: CHECK_UNIQUE_TASK_REF_PVT, CHECK_UNIQUE_PROJECT_REF_PVT, and CHECK_UNIQUE_TASK_NUMBER_PVT enforce the uniqueness of user-visible project references, task references, and task numbers respectively.
- Attribute and relationship validation: CHECK_CHANGE_PROJ_ORG_OK_PVT governs changes to the owning organization; CHECK_TASK_NUMB_CHANGE_OK_PVT and its companion HANDLE_TASK_NUMBER_CHANGE_PVT manage renumbering of tasks; VALIDATE_BILLING_INFO_PVT checks billing rate schedule consistency; CHECK_START_END_DATE_PVT enforces date-range rules; CHECK_FOR_ONE_MANAGER_PVT and CHECK_MANAGER_DATE_RANGE ensure a single valid manager assignment over a coherent effective period.
The legacy helper Convert_Pm_Projref_To_Id, referenced in the Check_Delete_Task_OK_pvt header comments, resolves a user-entered project reference into an internal project_id; it was subsequently replaced by a shared library routine, which is why it does not appear among the independently documented subprograms.
Tables Accessed
The package reads and, where applicable, updates the following documented tables through APPS synonyms:
- PA_PROJECTS and PA_PROJECTS_ALL — the project definition and multi-organization project definition, used to resolve project identity, validate references, and enforce deletion and organization-change rules.
- PA_PROJECT_TYPES_ALL — supplies project type attributes that constrain allowable changes and billing behavior.
- PA_STD_BILL_RATE_SCHEDULES and PA_STD_BILL_RATE_SCHEDULES_ALL — referenced by VALIDATE_BILLING_INFO_PVT to confirm that billing information is correctly configured.
- PA_TASKS — the task definition table, central to all task-level checks including uniqueness, hierarchy, numbering, and dates.
- DUAL — used for single-row expression evaluation in cursor and function logic.
- PLITBLM — the PL/SQL table lookup utility used for message handling.
Usage Notes
PA_PROJECT_CHECK_PVT is invoked indirectly. It is referenced by three other packages in the PA schema, and is called during the execution of the public project and task maintenance APIs. Typical entry points include the Projects, Tasks, and Project Templates forms, which rely on the public PA interfaces to validate a user's proposed action before committing; concurrent programs that create or restructure projects and tasks; and custom client extensions that call the public PA APIs, thereby triggering these private checks. Because the package is private and its signatures are not published as a supported interface, customizations should always invoke the public PA APIs (for example, PA_PROJECT_PUB or PA_TASK_PUB) rather than calling PA_PROJECT_CHECK_PVT directly, so that validation behavior remains consistent across upgrades from 12.1.1 to 12.2.2.