Search Results process_rbs_elements




Overview

APPS.PA_RBS_ELEMENTS_PUB is a public PL/SQL package that serves as the primary integration point for maintaining the Resource Breakdown Structure (RBS) definition within Oracle Projects. An RBS is the hierarchical classification of resources used for planning, budgeting, and cost collection in Oracle EBS. The package body encapsulates the business logic required to insert, update, and delete RBS elements (nodes) against a specific RBS version, and it exposes that logic through a stable, public Application Programming Interface (API) intended for external and internal callers.

The header comment in the source declares the package as the "overall point of entry to insert/update/delete elements/nodes," and explicitly notes that the API is used by SS (self-service) clients. It therefore functions as the programmatic gateway through which web-based or self-service user interfaces, and other Oracle Projects components, create and maintain the RBS hierarchy without directly manipulating the underlying base tables. In EBS 12.1.1 and 12.2.2 the package resides in the APPS schema and operates against APPS synonyms that point to the Oracle Projects base objects.

Key Procedures and Functions

ETRM documents three program units within this package:

  • PROCESS_RBS_ELEMENTS — The main public entry point. Its documented purpose is to process RBS elements, accepting a calling page identifier, commit and message-list control flags, API version information, RBS version identifiers, and array (table) structures describing parent elements, element identifiers, resource types, resource source information, order numbers, and per-row process types. It returns a standard return status, a message count, and an error message payload so callers can handle validation failures. Internally it delegates shared logic to a compatibility API, as indicated by the debug trace statement "Call Compatibility API."
  • POPULATEERRORSTACK — A supporting routine used to populate the PL/SQL error stack/message list when a validation or processing error occurs. It supports the standard API error-handling convention (message count plus error message data) returned to the caller.

The package defines a private exception, locked_version_rec, raised when the requested RBS version record cannot be locked, reflecting concurrency protection on the version row.

Tables Accessed

  • PA_RBS_ELEMENTS — The core table storing the individual RBS element/node records that PROCEDURE Process_RBS_Elements inserts, updates, or deletes.
  • PA_RBS_VERSIONS_B — The RBS version base table. The package queries it with a SELECT ... FOR UPDATE NO WAIT on the version identifier, restricting to rows whose Status_Code = 'WORKING', to guarantee that only a working version can be modified and to prevent concurrent modification.
  • PA_RES_TYPES_TL — The translated resource types table, used to validate and resolve resource type information supplied in the input arrays.
  • PLITBLM — The standard Oracle Applications PL/SQL table-to-message-list buffer used to store and return messages generated during API processing.

Usage Notes

PROCESS_RBS_ELEMENTS is intended for SS (self-service) callers and other EBS components rather than as a general-purpose data loader. ETRM records that this package is referenced by one other package, indicating an established internal dependency. Callers supply parallel PL/SQL tables carrying row-level data and a per-row process type (insert, update, or delete), plus the target RBS version. Because the target version must be in WORKING status and is locked with NO WAIT, the API raises the locked_version_rec exception if the version is being modified concurrently; callers should handle this case by retrying or reporting a controlled error.

Invocation typically originates from Oracle Projects forms, self-service web pages, or custom PL/SQL that adheres to the standard EBS API contract: initialize the message list, call the procedure with P_Init_Msg_List set appropriately, inspect X_Return_Status and X_Msg_Count, and commit only when the caller controls the transaction via P_Commit. Direct DML against PA_RBS_ELEMENTS and PA_RBS_VERSIONS_B is not recommended, since validation, hierarchy sequencing, and version status rules enforced by this package would otherwise be bypassed.