Search Results pa_project_players




Overview

PA_PROJECT_PLAYERS is a read-only view owned by the APPS schema in Oracle E-Business Suite, defined within the Projects (PA) product family. As documented in ETRM, its purpose is to present "People assigned to a Specified Project" — that is, the personnel resources who have been associated with a project as project members. The view is valid in both EBS 12.1.1 and 12.2.2 and is one of the standard project-party reporting interfaces exposed to developers, integrators, and report authors.

Functionally, the view provides a role-filtered projection of project party assignments. It isolates the subset of project parties whose assigned role is permitted to be used as a project member, using the ROLE_CONTROL_CODE value ALLOW_AS_PROJ_MEMBER defined in PA_ROLE_CONTROLS. This means the view answers a specific business question — who are the people acting as project members on a given project — rather than exposing every party that may be attached to a project for other purposes. Its role in reporting and integration is therefore narrow but stable: it is a dependable source for project staffing, resource assignment, and membership extracts.

Underlying Base Objects

The view is defined over three referenced base objects, each accessed through APPS synonyms:

  • PA_PROJECT_PARTIES — the primary source table, aliased PPP. It supplies the project party assignments, including resource, role, grant, scheduled flag, and audit columns.
  • PA_PROJECT_ROLE_TYPES_B — aliased PPRT, the project role type base table. It is joined on PROJECT_ROLE_ID to provide the PROJECT_ROLE_TYPE value used to describe the role of the assigned party.
  • PA_ROLE_CONTROLS — aliased PRC, the role control table. It is joined on PROJECT_ROLE_ID and filtered on ROLE_CONTROL_CODE = 'ALLOW_AS_PROJ_MEMBER', which restricts the result set to roles that qualify as project members.

The view assembles its rows through an inner join across these three objects. The join conditions require PPP.OBJECT_TYPE = 'PA_PROJECTS' and PPP.RESOURCE_TYPE_ID = 101 (the People resource type), and connect PPP.PROJECT_ROLE_ID to both PPRT.PROJECT_ROLE_ID and PRC.PROJECT_ROLE_ID. Because the joins are inner joins, only parties whose role is both defined in the role type table and allowed as a project member by the role controls are returned.

Key Columns

  • PROJECT_PARTY_ID — unique identifier of the project party assignment; the natural primary key of a returned row.
  • PROJECT_ID — the project to which the person is assigned.
  • PERSON_ID — the person identifier of the assigned project member. Note the underlying view text projects PPP.RESOURCE_ID, which for RESOURCE_TYPE_ID = 101 corresponds to the person.
  • PROJECT_ROLE_TYPE — the descriptive role type obtained from PA_PROJECT_ROLE_TYPES_B.
  • RESOURCE_ID and RESOURCE_TYPE_ID — the assigned resource and its type; the view is restricted to type 101 (People).
  • START_DATE_ACTIVE and END_DATE_ACTIVE — the effective date range of the assignment.
  • SCHEDULED_FLAG — indicates whether the assignment is scheduled.
  • GRANT_ID — the grant associated with the party assignment, where applicable.
  • LAST_UPDATE_DATE, LAST_UPDATED_BY, CREATION_DATE, CREATED_BY, LAST_UPDATE_LOGIN — standard audit columns.
  • RECORD_VERSION_NUMBER — optimistic locking version marker.

Common Use Cases and Queries

The view is typically used to report current and historical project membership, to feed project staffing dashboards, and to integrate project member data into external systems. It is not used for insert, update, or delete operations; it is strictly a query interface.

Listing all members of a project:

  • SELECT project_party_id, project_id, person_id, project_role_type, start_date_active, end_date_active FROM apps.pa_project_players WHERE project_id = :project_id ORDER BY person_id;

Restricting to currently active members using the effective dates:

  • SELECT ppp.project_id, ppp.person_id, ppp.project_role_type FROM apps.pa_project_players ppp WHERE ppp.project_id = :project_id AND SYSDATE BETWEEN ppp.start_date_active AND NVL(ppp.end_date_active, SYSDATE + 1);

Aggregating membership counts per project:

  • SELECT project_id, COUNT(DISTINCT person_id) member_count FROM apps.pa_project_players GROUP BY project_id;

Joining to PER_ALL_PEOPLE_F to resolve person names provides a common reporting extension, since the view itself exposes the person identifier rather than descriptive employee attributes. Users should remember that only roles flagged ALLOW_AS_PROJ_MEMBER appear, so counts derived from this view reflect project-member roles specifically and may differ from broader project party queries against PA_PROJECT_PARTIES.