Search Results periods_of_service




Overview

PER_PERIODS_OF_SERVICE_PKG_V2 is a public PL/SQL package in the APPS schema that centralizes business logic governing periods of service records in Oracle Human Resources. A period of service (PDS) represents a continuous span of employment, contract, or placement for a person, and is stored in PER_PERIODS_OF_SERVICE. The package provides server-side APIs for evaluating hire date validity, detecting back-to-back contract eligibility, and tracking the lifecycle state of a person's current period of service. Its header comment references bug fix #625423 concerning hire date changes, indicating that the package was extended to handle hire date corrections that must reconcile with existing period of service rows. Because the package is classified as an "Other" API and is referenced by four additional packages, it functions as an internal building block that other HR APIs and forms-based logic depend upon rather than as an end-user interface. It supports the Hire Date and Period of Service processing that occurs during new hire entry, employee record correction, rehire, and termination reversal.

Key Procedures and Functions

  • GET_MAX_LAST_PROCESS_DATE — Returns the most recent final process date of a period of service for a given person. This is used to determine how far PDS processing has advanced, so that subsequent operations do not reprocess or overwrite already-finalized periods.
  • GET_VALID_HIRE_DATES — Checks the person, assignment, and periods of service data to derive a minimum and maximum allowable hire date range. It also returns an indicator of whether a back-to-back contract is permissible. Failure raises an error.
  • ISBACKTOBACKCONTRACT — Determines whether a proposed arrangement qualifies as a back-to-back contract for a person, supporting continuity-of-service and contract-renewal rules.
  • GET_CURRENT_PDS_START_DATE — Returns the start date of the person's current period of service, providing a reference point for date validation and service calculations.
  • GET_CURRENT_OPEN_PDS_ID — Returns the identifier of the current open period of service record, allowing callers to locate the active PDS row without issuing their own queries.
  • IS_MAX_PDS_NOT_CLOSED — Indicates whether the most recent period of service remains unclosed, which is relevant when validating whether a new hire date or contract can be entered.

Tables Accessed

  • PER_PERIODS_OF_SERVICE — The primary table; read to obtain process dates, the current open PDS, and PDS start dates.
  • PER_ALL_PEOPLE_F — Supplies person-level attributes and effective-dated hire information.
  • PER_ALL_ASSIGNMENTS_F — Used to evaluate assignment context when validating hire date ranges.
  • PER_ASSIGNMENT_STATUS_TYPES — Provides assignment status information relevant to whether a PDS is open or closed.
  • PER_PERSON_TYPES — Used to distinguish person types (for example, employee versus contingent worker) affecting PDS and back-to-back contract rules.

Usage Notes

The package is invoked from Oracle HRMS forms and from other PL/SQL APIs during hire date maintenance, new hire processing, and period of service creation or correction. Because the APIs are documented as Public, custom code may call them directly, but callers should invoke them within the standard HR API savepoint and error-handling pattern rather than inside database triggers on the underlying tables. The package is not a concurrent program itself; it is a server-side dependency that concurrent processes and forms invoke to validate dates before inserting or updating PER_PERIODS_OF_SERVICE rows. In both 12.1.1 and 12.2.2, the package resides in the APPS schema and should only be called through APPS synonyms. All calls should supply the correct effective session date so that date-range and current-PDS determinations remain consistent with the caller's business context.