Search Results get_bdgt_link
Overview
PA_FUNDS_CONTROL_UTILS is a foundational utility package in the Oracle Projects (PA) module of Oracle E-Business Suite, delivered under the APPS schema with a status of VALID in both 12.1.1 and 12.2.2. Its primary business function is to support budgetary control and funds checking for projects and grants. Funds control in Oracle Projects determines whether commitments, encumbrances, and actual expenditures are permitted against a project budget, and this package provides the shared programmatic logic that the funds-checking and budgetary-control engine relies upon. It supplies helper routines for resolving compiled multipliers, determining account and period eligibility, evaluating budget baselines, retrieving encumbrance types, and calculating balances. Because it is a supporting utility rather than an end-user API, it is not directly exposed to forms; instead it is consumed by higher-level processes such as budget funds checking, commitment processing, and the Subledger Accounting (SLA) integration. The ETRM record classifies the package as OTHER and documents 27 procedures and functions, and notes that it is referenced by 32 other database objects, underscoring its central role in the funds-control subsystem.
Key Procedures and Functions
The documented routines fall into several functional groupings:
- Initialization and setup: INIT_UTIL_VARIABLES prepares package-level state, while GET_FND_REQD_FLAG and GET_SLA_NOTUPGRADED_FLAG resolve profile-controlled behavior flags.
- Compiled multiplier and set resolution: GET_FC_COMPILED_MULTIPLIER and GET_FC_COMPILED_SET_ID retrieve compiled multiplier values and set identifiers used in expenditure and cost-base calculations; GET_FC_PROJ_BURDN_COST obtains project burdened cost data.
- Budget and baseline lookups: GET_BDGT_VERSION_ID, GET_BASELINED_BUDGET_VERSION, GET_BDGT_LINK, GET_BUDGET_CCID, and GET_TIME_PHASED_TYPE_CODE resolve the relevant budget version, code combination, and time-phased configuration. IS_BUDGET_BASELINED_BEFORE evaluates whether a baseline existed as of a given point in time.
- Accounts, periods, and encumbrances: GET_GL_PERIODS retrieves General Ledger period information, GET_ENCUM_TYPE_ID resolves the encumbrance type, and GET_ACCT_LINE_BALANCE returns account-line balance amounts.
- Change and sweep processing: IS_ACCOUNT_CHANGE_ALLOWED and IS_ACCOUNT_CHANGE_ALLOWED2 determine whether account changes are permissible, RUNSWEEPER executes the sweeper process, UPDATE_BVID_BLID_ON_CDL_BCCOM propagates budget version and budget line identifiers onto cost distribution and commitment records, and PRINT_MESSAGE provides diagnostic output.
Tables Accessed
The package reads from and writes to a broad set of APPS synonyms. Payables tables — AP_INVOICES_ALL, AP_INVOICE_DISTRIBUTIONS_ALL, AP_PREPAY_APP_DISTS, and AP_PREPAY_HISTORY_ALL — are accessed to evaluate invoice, prepayment, and prepayment-application amounts that feed funds checking. Project budgeting tables include PA_BC_BALANCES, PA_BC_COMMITMENTS, PA_BC_COMMITMENTS_ALL, PA_BC_PACKETS, PA_BUDGETARY_CONTROL_OPTIONS, PA_BUDGET_ACCT_LINES, PA_BUDGET_ENTRY_METHODS, and PA_BUDGET_VERSIONS; these hold balances, commitments, and the configuration governing budgetary control. GL_PERIOD_STATUSES supplies open/closed period status, GL_ENCUMBRANCE_TYPES provides encumbrance type definitions, and XLA_EVENTS supports the SLA integration. Together these tables allow the package to reconcile budget, commitment, and actual activity.
Usage Notes
PA_FUNDS_CONTROL_UTILS is not invoked directly by end users or standard forms. It is called from within budget funds-checking routines, commitment and encumbrance processing, and posting flows, and its routines such as RUNSWEEPER are typically driven by concurrent programs or internal engine calls. The presence of FND_REQUEST and FND_PROFILE dependencies confirms both concurrent-request submission and profile-option resolution. Given its status as a utility package referenced by 32 other objects, customizations should treat it as internal infrastructure; direct modification is unsupported, and custom code should call the higher-level funds-control APIs rather than these low-level helpers.