Search Results check_bill_split
Overview
APPS.PA_PROJECT_UTILS is a foundational Oracle Projects utility package within Oracle E-Business Suite Release 12.1.1 and 12.2.2. It provides the shared validation, lookup, and project-integrity logic that other Oracle Projects modules rely upon when creating, modifying, validating, or deleting project records. The package centralizes cross-module rules — uniqueness of project identifiers, validity of project types and managers, existence of billing and funding relationships, and protection against deleting projects that still carry dependent transactional data.
The package header dates to the original Oracle Projects implementation (circa 1995) and has been maintained through numerous bug fixes, as reflected in its $Header revision markers and commented annotations such as "Added for bug 2125791." Its long-lived presence and the fact that it is referenced by 98 other packages underscore its role as a low-level utility layer rather than a user-facing interface. The package is classified as OTHER in the API taxonomy — it is an internal utility package, not one of the documented public business APIs.
The package header declares global PLSQL datatype collections (glob_project_status_code, glob_proj_sys_status_code, glob_action_code, glob_enabled_flag) used to cache status and action code lists, plus a glob_total_rec counter. These package-level globals support the lookup procedures that translate user-friendly status and distribution-rule names into their internal codes.
Key Procedures and Functions
The ETRM metadata documents 39 procedures and functions. Principal ones include:
- GET_PROJECT_STATUS_CODE — Retrieves the internal project status code corresponding to a specified project status.
- GET_DISTRIBUTION_RULE_CODE — Returns the distribution rule code given its user-friendly distribution name.
- GET_PROJ_TYPE_CLASS_CODE — Returns the project type class code for a given project type or project id; when both are supplied, project id takes precedence.
- CHECK_UNIQUE_PROJECT_NAME / CHECK_UNIQUE_LONG_NAME / CHECK_UNIQUE_PROJECT_NUMBER — Enforce uniqueness constraints on project name, long name, and project number.
- CHECK_UNIQUE_PROJ_CLASS / CHECK_UNIQUE_CUSTOMER — Validate uniqueness and validity of project class and customer associations.
- CHECK_PROJECT_TYPE_VALID / CHECK_MANAGER_EXISTS — Confirm that a supplied project type and project manager are valid.
- CHECK_BILL_SPLIT / CHECK_BILL_CONTACT_EXISTS — Verify billing split configuration and the existence of a billing contact.
- CHECK_CLASS_CATEGORY — Validates the project class category.
- CHECK_DRAFT_INV_EXISTS / CHECK_DRAFT_REV_EXISTS — Detect the presence of draft invoices or draft revenue records tied to a project.
- CHECK_CREATED_PROJ_REFERENCE — Determines whether a project has been referenced by created (dependent) records, guarding downstream integrity. This is the procedure the user searched for.
- CHECK_DELETE_PROJECT_OK / CHANGE_PT_ORG_OK / CHANGE_PROJ_NUM_OK / CHECK_PROJ_FUNDING — Govern deletion eligibility, project template/organization changes, project number changes, and funding validation.
Tables Accessed
The package reads and writes against core Oracle Projects tables through APPS synonyms:
- PA_PROJECTS_ALL / PA_PROJECTS — Primary project master records.
- PA_DISTRIBUTION_RULES — Source of distribution-rule codes.
- PA_DRAFT_INVOICES / PA_DRAFT_INVOICES_ALL / PA_DRAFT_REVENUES / PA_DRAFT_REVENUES_ALL — Draft billing and revenue records checked by the draft-existence validators.
- PA_EXPENDITURE_ITEMS_ALL / PA_COST_DISTRIBUTION_LINES_ALL — Expenditure and cost distribution data referenced during creation and deletion checks.
- PA_ASSIGNMENTS_HISTORY — Historical project assignments used in manager and template validation.
- PA_FORECASTING_OPTIONS_ALL / PA_OPTIONS / PA_IMPLEMENTATIONS — Configuration and implementation-level settings.
- FND_USER — User validation (for example, manager existence checks).
- FND_DESCR_FLEX_COLUMN_USAGES — Descriptive flexfield column usage used in validation logic.
Usage Notes
PA_PROJECT_UTILS is invoked primarily from Oracle Projects forms (project setup, project creation and maintenance, and deletion flows) and from numerous internal packages across the Projects suite — the metadata records it as referenced by 98 other packages. Typical invocation occurs during project creation and update to enforce uniqueness and validity rules before a record is committed, and during delete operations to confirm no dependent draft invoices, revenues, expenditure items, or other created references remain.
Because the package is an internal utility (API classification OTHER), it is not intended as a published extension API. Custom code that calls it directly should treat the signatures as subject to change between patch levels and should prefer documented public APIs. When troubleshooting project creation, deletion, or "project has references" errors in 12.1.1 or 12.2.2, CHECK_CREATED_PROJ_REFERENCE and CHECK_DELETE_PROJECT_OK are the procedures most often implicated, since they gate whether a project may be removed. Keeping these dependencies in mind helps isolate validation failures attributable to downstream draft or transaction records.