Search Results pa_task_assignments_pub




Overview

PA_TASK_ASSIGNMENTS_PVT is an internal (private) PL/SQL package in the APPS schema that supports Oracle EBS Project Resource Management. It provides the core processing logic for creating and maintaining task assignments, the records that connect project resources (people, organizations, or roles defined in the resource list) to specific project tasks, and for maintaining the corresponding assignment periods across a project's budget or forecast calendar. Task assignments underpin planned effort, budgeting, forecasting, and progress tracking; the periodic (spread) assignment rows are what allow effort and cost to be distributed over GL periods.

Unlike the companion public API PA_TASK_ASSIGNMENTS_PUB, this is a private package and is not intended for direct external invocation. It is consumed by the public API and by other project management packages to implement the underlying business rules, including validation, version locking, period generation, and the derivation/rollup of assignment data.

Key Procedures and Functions

Nine documented program units exist in the package. Per ETRM metadata, procedures/functions are: PFCHAR, PFNUM, PFDATE, CREATE_TASK_ASSIGNMENT_PERIODS, LOCK_VERSION, GET_PERIOD_START_DATE, DERIVE_TASK_ASSIGNMENTS, COPY_MISSING_UNPLANNED_ASGMTS, and CHECK_PERIOD_DETAILS.

  • PFCHAR, PFNUM, PFDATE — Internal helper/utility functions (private char, number, and date converters/validators) used throughout the package to normalize and validate attribute values.
  • CREATE_TASK_ASSIGNMENT_PERIODS — Generates the period-by-period assignment records for a task assignment, spreading planned effort/quantities across the appropriate GL periods from the assignment's start to end date.
  • LOCK_VERSION — Applies concurrency control by locking the relevant project/budget version so that task assignment changes are not lost to simultaneous updates.
  • GET_PERIOD_START_DATE — Determines the effective period start date used when building or validating assignment period rows.
  • DERIVE_TASK_ASSIGNMENTS — Derives or recalculates task assignment data from project structure, resource assignment, and version information, producing the assignment records needed for downstream budgeting/forecasting.
  • COPY_MISSING_UNPLANNED_ASGMTS — Copies assignment records that exist as unplanned but are missing from the target version, supporting version copy and forecast scenarios.
  • CHECK_PERIOD_DETAILS — Validates that the period detail rows for a task assignment are consistent and complete (for example, that the summed period allocations agree with the assignment total).

Tables Accessed

The package reads and writes project management data through APPS synonyms. Referenced tables include: PA_PROJECTS_ALL and PA_PROJECTS (project definition), PA_PROJ_ELEMENTS, PA_PROJ_ELEMENT_VERSIONS, PA_PROJ_ELEM_VER_STRUCTURE, and PA_PROJ_ELEM_VER_SCHEDULE (task/structure definitions, versions, and schedules), PA_BUDGET_VERSIONS (version control), PA_RESOURCE_ASSIGNMENTS and PA_RESOURCE_ASGN_CURR (resource assignment and current assignment amounts), PA_RESOURCE_LIST_MEMBERS (resource list definitions), PA_PROJ_FP_OPTIONS (forecasting/planning options), GL_PERIODS (period calendar for spreading), PA_IMPLEMENTATIONS_ALL (installation/currency options), and PA_BUDGET_LINES and PA_FP_ROLLUP_TMP (budget lines and temporary rollup).

Usage Notes

PA_TASK_ASSIGNMENTS_PVT is a PVT (private) package and is not a supported integration point. It is referenced by PA_TASK_ASSIGNMENTS_PUB, PA_BUDGET_PUB, PA_FP_COPY_FROM_PKG, and PA_PROGRESS_PUB, which drive task assignment maintenance, budget/forecast processing, and progress entry. In practice it is invoked indirectly through those public APIs, through Oracle Project Management forms and concurrent programs (budget/forecast generation, version copy, progress calculation), and through the resource assignment flows. Custom code should call PA_TASK_ASSIGNMENTS_PUB rather than this package, and any manipulation of PA_TASK_ASSIGNMENTS_PVT should be avoided because its interfaces and logic are subject to change across releases (12.1.1 / 12.2.2).