Search Results get_current_project_id




Overview

GMS_BURDEN_COSTING is an Oracle E-Business Suite PL/SQL package body owned by the APPS schema and classified under the ETRM as an "OTHER" API type. It forms part of the Oracle Grants Management (GMS) module, which manages sponsored projects, awards, budgets, and the associated burden (indirect cost) processing. The package header carries a version identifier of 120.1 dated July 2005, indicating it is a long-standing component that has been carried forward through the 12.1.1 and 12.2.2 releases without structural revision.

The business purpose served by this package is narrow but useful: it provides a mechanism for other GMS burden costing logic to establish and retrieve a session-scoped reference to the project currently being processed. In Oracle Grants, burden costing routines frequently need to know which project context they are operating under when applying indirect cost schedules, calculating burden on expenditure items, or writing burden transactions. Rather than passing project identifiers through every nested call, GMS burden processing uses this package to hold the project in a package-level variable and expose it through accessor subprograms.

Key Procedures and Functions

The package exposes exactly two documented subprograms, both centred on the current_project_id variable.

  • SET_CURRENT_PROJECT_ID — A procedure whose purpose is to record the project identifier for the current processing session. It assigns the supplied project identifier to the package variable so that subsequent operations in the same database session can reference it. Notably, the source declares a local variable of the same name inside the procedure body, shadowing the package-level variable; this is a legacy coding pattern and is worth noting when tracing runtime behaviour, since the assignment targets the local declaration rather than the global one in the shipped source.
  • GET_CURRENT_PROJECT_ID — A function that returns the numeric project identifier currently held in the package variable. Callers use it to recover the project context that was previously established, typically when constructing queries or validations against project-related data within the same session.

Because the value is held in a package variable, its scope is limited to the database session. It is neither persisted nor visible across sessions or concurrent requests.

Tables Accessed

The only table documented against this package is PA_PROJECTS_ALL, accessed through the APPS synonym. The package references it for its PROJECT_ID column type, declaring current_project_id pa_projects_all.project_id%type. This is an anchored declaration rather than a data access; the package does not select from, insert into, or update PA_PROJECTS_ALL. Anchoring to the base project table guarantees the variable matches the datatype and precision of the project identifier used throughout Oracle Projects and Grants, which is important when invoking the package with identifiers returned from project queries.

Usage Notes

The ETRM records that GMS_BURDEN_COSTING is referenced by one other package, meaning it functions as a shared helper rather than an entry point. It is not a concurrent program and is not bound to a specific form; instead, it is called by other burden costing routines within the GMS module and by custom extensions that need a session-level project context.

Typical invocation follows a simple pattern: a caller executing burden logic invokes SET_CURRENT_PROJECT_ID once with the project being processed, then any downstream code within the same session invokes GET_CURRENT_PROJECT_ID to recover that value. Because a package variable retains its value for the life of the session, callers should re-set the identifier whenever the processing context changes, and should not rely on the value persisting between separate concurrent requests or database sessions. Custom code referencing this package should treat it as a convenience accessor for project context and continue to source authoritative project data from PA_PROJECTS_ALL.