Results for “per_roles”

50+ results




AI-generated from documented ETRM metadata — verify critical details on the linked pages.

Overview

The PER_ROLES table, owned by the HR schema and validated in Oracle EBS 12.1.1 and 12.2.2, is a core Human Resources (PER) object that stores the different roles a person performs within an enterprise. In Oracle HRMS terminology, a "role" is a dated assignment of a person to a specific job and job group within an organization, representing the functional capacity in which that individual operates. This table therefore acts as the primary repository for role-based workforce data and underpins downstream processes such as elections, benefits eligibility, and organizational reporting.

The table contains 60 documented columns and is keyed by the PER_ROLES_PK primary key on ROLE_ID. From a heuristic data-modeling perspective, the metadata (mined from foreign-key structure) classifies this object as satellite-leaning. This suggests that PER_ROLES behaves predominantly as a descriptive satellite attached to its parent entities — principally the person, organization, job, and job group it references — rather than as an independent hub or a many-to-many link. Modelers should treat it as an attribute-bearing, time-bounded record whose natural business anchor is the person/organization combination.

Key Information Stored

Among the 60 columns, the following carry the most significant business meaning:

The only documented unique index is PER_ROLES_PK on ROLE_ID; however, the combination of PERSON_ID, ORGANIZATION_ID, JOB_ID, and the date range effectively establishes the business-key grain of a role assignment.

Common Use Cases and Queries

Typical applications include determining a person's active role at a point in time, reporting headcount by job group and organization, and driving election eligibility.

To retrieve current active roles for a person:

  • SELECT role_id, person_id, organization_id, job_id, start_date, end_date FROM per_roles WHERE person_id = :p_person AND TRUNC(SYSDATE) BETWEEN start_date AND NVL(end_date, TRUNC(SYSDATE));

To aggregate headcount by job group:

  • SELECT job_group_id, COUNT(DISTINCT person_id) FROM per_roles WHERE TRUNC(SYSDATE) BETWEEN start_date AND NVL(end_date, TRUNC(SYSDATE)) GROUP BY job_group_id;

Reporting frequently joins PER_ROLES to PER_ALL_PEOPLE_F, HR_ALL_ORGANIZATION_UNITS, and PER_JOBS to resolve descriptive names for person, organization, and job.

Related Objects

  • HR_ALL_ORGANIZATION_UNITS — Referenced via PER_ROLES.ORGANIZATION_ID; supplies role organization context.
  • PER_JOB_GROUPS — Referenced via PER_ROLES.JOB_GROUP_ID; supplies job group classification.
  • PER_JOBS — Referenced via PER_ROLES.JOB_ID; supplies the job definition.
  • PER_ELECTION_CANDIDATES — References PER_ROLES.ROLE_ID through PER_ELECTION_CANDIDATES.ROLE_ID; ties election candidacy to a specific role.
  • PER_ALL_PEOPLE_F — Commonly joined on PERSON_ID to resolve person-level details (functional join).