Results for “pa_project_utils”
50+ results
AI-generated from documented ETRM metadata — verify critical details on the linked pages.
Overview
PA_PROJECT_UTILS is a foundational PL/SQL utility package body in the Oracle E-Business Suite Projects (PA) module, owned by the APPS schema and validated for release 12.1.1 and 12.2.2. Its primary business function is to centralize the validation, lookup, and eligibility-checking logic used throughout project definition and maintenance. Rather than embedding validation rules directly into Oracle Forms or concurrent programs, Oracle Projects exposes them as reusable server-side routines that enforce data integrity consistently across entry points such as the Project, Task, and Template workbenches, project creation APIs, and integration programs.
The package is consumed broadly: ETRM metadata records that it is referenced by 98 other database objects and that it depends on a wide set of peer utilities including PA_UTILS, PA_TASK_UTILS, PA_PROJ_TSK_UTILS, PA_BUDGET_UTILS, PA_ALLOC_UTILS, PA_CC_UTILS, PA_FIN_PLAN_UTILS, and PA_OTC_API. It also draws on FND_AOL and message infrastructure (FND_API, FND_MSG_PUB, FND_FLEX_APIS), reflecting a standard EBS design in which validation failures are surfaced through the FND message stack and descriptive flexfield logic is resolved via FND_DESCR_FLEX_COLUMN_USAGES. It carries an API classification of OTHER, meaning it is an internal utility package rather than a formally published public API.
Key Procedures and Functions
The documented interface exposes 39 procedures and functions. The principal groups are summarized below; no parameter signatures are asserted here.
- Uniqueness checks: CHECK_UNIQUE_PROJECT_NAME, CHECK_UNIQUE_LONG_NAME, CHECK_UNIQUE_PROJECT_NUMBER, CHECK_UNIQUE_PROJ_CLASS, and CHECK_UNIQUE_CUSTOMER verify that a proposed project attribute does not collide with existing definitions, supporting User-Defined Name, Long Name, Project Number, project class, and customer validation on the project definition forms.
- Referential and eligibility checks: CHECK_MANAGER_EXISTS, CHECK_BILL_CONTACT_EXISTS, CHECK_BILL_SPLIT, CHECK_CLASS_CATEGORY, CHECK_PROJECT_TYPE_VALID, CHECK_PROJ_FUNDING, CHECK_CREATED_PROJ_REFERENCE, and CHECK_CUSTOMER confirm that referenced parties, class categories, funding records, and project type definitions are valid before an operation proceeds.
- Deletion and change controls: CHECK_DELETE_PROJECT_OK, CHECK_DRAFT_INV_EXISTS, CHECK_DRAFT_REV_EXISTS, CHECK_BILL_SPLIT, CHANGE_PT_ORG_OK, and CHANGE_PROJ_NUM_OK determine whether a project may be deleted or whether its owning operating unit or project number may be changed, guarding against in-flight draft invoices or draft revenues.
- Lookup accessors: GET_PROJECT_STATUS_CODE, GET_DISTRIBUTION_RULE_CODE, and GET_PROJ_TYPE_CLASS_CODE return derived codes used to seed form fields and default values in downstream processing.
Tables Accessed
The package reads and writes against core Projects tables exposed through APPS synonyms. Project definition data is read from PA_PROJECTS, PA_PROJECTS_ALL, PA_PROJECT_TYPES, PA_PROJECT_TYPES_ALL, PA_PROJECT_STATUSES, PA_PROJECT_STATUS_CONTROLS, PA_PROJECT_CLASSES, PA_PROJECT_ASSIGNMENTS, PA_PROJECT_PLAYERS, PA_PROJECT_CONTACTS, PA_PROJECT_CUSTOMERS, PA_PROJECT_FUNDINGS, and PA_PROJECT_PARTIES_V. Transactional integrity checks query PA_DRAFT_INVOICES, PA_DRAFT_INVOICES_ALL, PA_DRAFT_REVENUES, PA_DRAFT_REVENUES_ALL, PA_EXPENDITURE_ITEMS_ALL, PA_COST_DISTRIBUTION_LINES_ALL, and PA_ASSIGNMENTS_HISTORY to detect activity that would block a delete, number change, or organization change. Configuration and reference data are obtained from PA_PROJECT_TYPES, PA_DISTRIBUTION_RULES, PA_FORECASTING_OPTIONS_ALL, PA_OPTIONS, PA_IMPLEMENTATIONS, PA_VALID_CATEGORIES_V, FND_DESCR_FLEX_COLUMN_USAGES, and FND_USER.
Usage Notes
PA_PROJECT_UTILS is invoked primarily from Oracle Forms events — WHEN-VALIDATE-ITEM and WHEN-BUTTON-PRESSED triggers on the Project, Task, and Template forms — and from project creation and maintenance APIs that call the same validation routines before committing. Because it is not a published public API, custom extensions should treat it as an internal dependency: call it only where Oracle does, and be aware that signatures may change between patches and point releases. Sites performing custom validation, data conversions, or multi-organization migrations commonly reuse these routines to guarantee consistent enforcement of project numbering, class/category rules, funding, and deletion eligibility. Dependency on PA_UTILS, PA_TASK_UTILS, FND_MSG_PUB, and FND_FLEX_APIS means the package must be compiled in an environment where those objects are valid; because it is referenced by 98 dependent objects, invalidating it can cascade compilation failures across the Projects schema.