Search Results pa_budget_lines_v_pkg




Overview

APPS.PA_BUDGET_LINES_V_PKG is the PL/SQL package that provides the row-level Data Manipulation Language (DML) interface for the PA_BUDGET_LINES_V view, the denormalized budget-line entity used throughout Oracle Projects. The view presents budget lines in a form consumed by the Oracle Projects budgeting and resource-assignment screens, combining header-level budget context with the resource, date, quantity, cost, and revenue detail of each individual line. The package encapsulates the INSERT, UPDATE, DELETE and LOCK operations required to maintain rows in the underlying base and translation tables so that calling code never manipulates PA_BUDGET_LINES or PA_BUDGET_LINES_S directly.

Because it is a view-level API rather than a business-event API, the package is classified under ETRM as API classification OTHER. Its primary role is to service Oracle Forms-based maintenance of budget lines and to provide a controlled, validated write path for any program or custom extension that must create or modify budget lines while preserving the auditing columns, descriptive flexfield attributes, and the multiple reporting currency (MRC) considerations that historically applied to this object.

Key Procedures and Functions

  • INSERT_ROW — Creates a new budget line record. It accepts the full column set of the view, including the row identifier, resource assignment identifier, budget version, project and task identifiers, resource list member, description, start and end dates, period name, quantity, unit of measure, labor tracking flag, raw and burdened cost, revenue, change reason code, the WHO audit columns, the descriptive flexfield attribute category and attribute columns, and the source indicators for cost, quantity and revenue. The procedure returns the generated ROWID and identifiers through IN OUT NOCOPY parameters. Defaults are supplied for the calling process (PR), product code, budget line reference, and for the cost, burdened cost, quantity and revenue source columns (all defaulting to M). Additional columns added in March 2001 support standard bill rate, average bill rate and average cost rate.
  • LOCK_ROW — Obtains a row-level lock on a specified budget line, ensuring that concurrent sessions cannot modify the same row between the fetch and the subsequent update or delete.
  • UPDATE_ROW — Persists changes to an existing budget line, applying the same column set and validation expectations as INSERT_ROW.
  • DELETE_ROW — Removes a budget line from the view and its underlying tables.
  • CHECK_OVERLAPPING_DATES — The procedure most commonly sought by developers. It validates that a proposed start and end date range for a budget line does not overlap with existing budget lines for the same resource or assignment. This date-overlap check enforces the rule that a resource may not be assigned simultaneously to two conflicting budget periods, protecting downstream cost distribution, billing and revenue generation from ambiguous date ranges.

Tables Accessed

  • PA_BUDGET_LINES / PA_BUDGET_LINES_S — The primary and translation (MLS) base tables holding budget line detail and its language-dependent columns; read and written by the DML procedures and queried by the overlap check.
  • PA_BUDGET_TYPES and PA_BUDGET_VERSIONS — Supply the budgeting context (budget type and version) validated against the incoming budget version identifier.
  • PA_RESOURCE_ASSIGNMENTS / PA_RESOURCE_ASSIGNMENTS_S — Hold the resource assignment to which a budget line is tied, including the assignment's own date range, which is relevant to the overlap validation.
  • PA_RESOURCE_LIST_MEMBERS — Identifies the resource list member being budgeted.
  • DUAL — Used for single-row evaluation and default expression resolution.

Usage Notes

PA_BUDGET_LINES_V_PKG is invoked whenever a budget line is created, changed, locked or deleted from within the Oracle Projects budgeting forms. In EBS 12.1.1 and 12.2.2 the package remains an APPS-owned object and is referenced by six other packages, indicating that it functions as a shared low-level utility rather than a purely form-attached library. Customizations that must insert budget lines programmatically should follow the same pattern: switch to the APPS schema context, call INSERT_ROW with a fully populated parameter set, and invoke CHECK_OVERLAPPING_DATES beforehand when dates are supplied, to avoid inserting conflicting rows that would later fail validation. Because both the base table and its translation table are touched, multi-language installations should ensure the session language is set correctly before calling the procedures. Direct DML against PA_BUDGET_LINES should be avoided, as it bypasses the audit-column population and the overlap validation performed here.