Results for “check_pl_alias_unique”
19 results
AI-generated from documented ETRM metadata — verify critical details on the linked pages.
Overview
PA_PLANNING_RESOURCE_PVT is a private PL/SQL package body in the APPS schema that supports resource planning within Oracle Projects. It provides the internal business logic that governs how planning resources are created, maintained, validated, and copied across a project plan. In Oracle EBS 12.1.1 and 12.2.2, this package acts as a lower-level counterpart to the public planning resource APIs, encapsulating the insert, update, delete, and validation rules applied to the resource assignment structures used during project planning and budgeting.
The package is classified as a PVT object, meaning it is intended for internal consumption rather than direct end-user or custom-code invocation. It depends on several shared Oracle Projects utilities, including PA_PLANNING_RESOURCE_UTILS, PA_GET_RESOURCE, PA_CREATE_RESOURCE, PA_TASK_ASSIGNMENT_UTILS, and the FND_API framework for message handling and error propagation. Its scope is tightly coupled to the resource list and resource member data model, which forms the backbone of resource-based planning in Oracle Projects.
Key Procedures and Functions
The package exposes five documented procedures/functions that represent its core planning-resource lifecycle operations:
- CHECK_PL_ALIAS_UNIQUE — Validates that a planning resource alias (or name) does not duplicate an existing alias within the planning context, ensuring uniqueness before a resource is persisted.
- CREATE_PLANNING_RESOURCE — Inserts a new planning resource, applying defaults and validation rules drawn from the resource defaults and resource type setups.
- UPDATE_PLANNING_RESOURCE — Modifies an existing planning resource record, applying the same validation and defaulting logic on the changed attributes.
- DELETE_PLANNING_RESOURCE — Removes a planning resource and reconciles the associated member and assignment records.
- COPY_PLANNING_RESOURCES — Duplicates an existing set of planning resources into a target plan, list, or version, using template and member tables to stage the copy.
These routines orchestrate the resource list membership and assignment records that downstream planning forms and concurrent processes rely upon.
Tables Accessed
The package reads and writes a broad set of Oracle Projects resource and assignment tables, along with supporting setup and inventory tables. Key tables include PA_RESOURCES and PA_RESOURCE_ASSIGNMENTS, which hold planning resource definitions and task-level assignments; PA_RESOURCE_LIST_MEMBERS and PA_RESOURCE_LIST_MEMBERS_S, which manage membership in resource lists; and PA_RESOURCE_LISTS_ALL_BG, PA_RESOURCE_CLASSES_B, PA_RES_TYPES_B, and PA_RES_FORMATS_B, which provide list, class, type, and format setup data.
Temporary staging tables PA_RES_MEMBERS_TEMP and PA_RES_MEMBER_ID_TEMP are central to the copy and bulk-edit operations, since they hold resource member rows transiently during processing. Defaulting and formatting behavior draws on PA_PLAN_RES_DEFAULTS and PA_PLAN_RL_FORMATS. Project-side context comes from PA_PROJECT_ASSIGNMENTS and PA_TASK_ASSIGNMENT_UTILS. Validation and lookup support reference PA_EXPENDITURE_TYPES, PA_LOOKUPS, MTL_SYSTEM_ITEMS_B, and MTL_UNITS_OF_MEASURE, while PER_PEOPLE_X supplies person data for resource assignment. Utility routines such as PA_NUM_TBL_TYPE and PA_VARCHAR2_1_TBL_TYPE provide PL/SQL collection types used internally.
Usage Notes
Because this is a private package body, it is not documented as being referenced directly by other database objects, and it should not be called directly from custom code. It is invoked indirectly through Oracle Projects planning forms — most notably the resource planning and resource list maintenance windows — and through concurrent programs that generate, copy, or synchronize planning resources. The presence of PA_RES_MEMBERS_TEMP and PA_RES_MEMBER_ID_TEMP indicates heavy use during bulk operations such as copying a resource list or plan version, where rows are staged in temporary tables before final commit. Customizations should target the public planning APIs and supported extension points rather than this package body, since its signatures and internal logic may change between releases. Prior to any patch or upgrade in 12.1.1 or 12.2.2, the package's validity should be confirmed via ALL_OBJECTS, as dependent code is compiled against it.