Search Results pa_resources_pkg




Overview

PA_RESOURCES_PKG is the standard table handler package for the PA_RESOURCES table in Oracle Projects. PA_RESOURCES stores the master definition of resources that can be assigned to project work, including people, organizations, expenditure categories, and other resource types used for planning, budgeting, and cost distribution. The package exposes the canonical Insert, Update, Lock, and Delete operations that Oracle Projects forms and concurrent programs use to maintain this table consistently, ensuring the WHO columns, row identifiers, and attribute flexfield values are populated correctly. In addition to these table handler routines, the package provides name resolution functions used to translate stored resource identifiers into user-facing names. The metadata classifies the package as Other rather than as a public, fully supported API, and it is referenced by eight other packages within the Oracle Projects schema, which indicates that it functions primarily as an internal plumbing layer for the resource data model.

Key Procedures and Functions

The documented interface comprises six callable units:

  • INSERT_ROW — Inserts a new row into PA_RESOURCES, accepting the resource identifier, name, description, resource type, unit of measure, rollup quantity flag, active date range, track-as-labor flag, audit columns, and attribute flexfield values.
  • UPDATE_ROW — Updates an existing PA_RESOURCES row identified by its row identifier, covering the same business and audit columns as the insert routine.
  • LOCK_ROW — Locks a PA_RESOURCES row by row identifier to support the optimistic locking pattern used by Oracle Forms, typically invoked after a query and before an update or delete.
  • DELETE_ROW — Deletes a PA_RESOURCES row by row identifier.
  • GET_RESOURCE_NAME — Returns the name of a resource given the resource identifier and, per the source header comment, the resource type identifier. This function was added to support a specific bug fix (#1299456) and is the routine most commonly sought by developers resolving resource IDs to display names.
  • GET_RESOURCE_LIST_MEMBER_NAME — Returns the display name of a member of a resource list, resolving through the resource list membership tables rather than the base resource definition.

Parameter lists are not reproduced here; callers should confirm signatures against the deployed package specification for their specific point release, since the 12.1.1 and 12.2.2 source may differ slightly from the 2005 header revision shown in the documentation excerpt.

Tables Accessed

The package reads and writes PA_RESOURCES as its primary table. Supporting lookups include PA_RESOURCE_TYPES for resource type validation, PA_RESOURCE_TXN_ATTRIBUTES for transaction attribute defaults, PA_RESOURCE_LISTS_ALL_BG and PA_RESOURCE_LIST_MEMBERS for resource list membership and name resolution, and PA_IMPLEMENTATIONS for installation-level settings. Name resolution for person and organization resources draws on HR_ALL_ORGANIZATION_UNITS, PER_ALL_PEOPLE_F, and PER_JOBS, which supply organization, employee, and job names respectively. All access is performed through APPS synonyms.

Usage Notes

PA_RESOURCES_PKG is invoked chiefly by Oracle Projects setup and maintenance forms that maintain resource definitions and resource lists, and by concurrent programs that import or mass-maintain resources. GET_RESOURCE_NAME is frequently called from custom reports, views, and PL/SQL routines that need to display a resource name from a stored resource ID without joining to PA_RESOURCES directly. Because the package is classified as Other and lacks a broadly published API designation, custom code should treat it as an internal interface: it may be used for read-only name resolution where necessary, but direct DML should be routed through the supported Oracle Projects APIs rather than the table handler routines, which do not enforce all business rules. Developers should also verify the exact signature of GET_RESOURCE_NAME on their installed release before compiling dependent code, as the resource type parameter behaves differently across code lines.