You are on page 1of 11

Understanding Budgetary Control Data in Projects (Doc ID 1317340.

1)

To Bottom

In this Document
Goa
l
E-Business Suite: Oracle Project Costing Information Center > Budgetary
Control And Funds Check R12: A Case Study Using a Non-Integrated Budget
> Note 1317340.1
Solutio
n
1. Table:
PA_BUDGETARY_CONTROL_OPTIONS
Descriptio
n:
Key Column
Details
2. Table
PA_BUDGETARY_CONTROLS
Descriptio
n:
Key Column
Details
3. Table
PA_BUDGET_ENTRY_METHODS
Descriptio
n:
Key Column
Details
4. Table
PA_BC_PACKETS
Descriptio
n:
Key Column
Details
5. Table
PA_BC_BALANCES
Descriptio
n:
Key Column
Details
Referenc
es

APPLIES TO:
Oracle Project Foundation - Version 12.0.0 and later
Oracle Project Costing - Version 12.0.0 and later
Oracle Project Management - Version 12.0.1 and later
Information in this document applies to any platform.

***Checked for relevance on 23-Dec-2013***


Form:PAXBUEBU.FMB - Budgets
GOAL
E-Business Suite: Oracle Project Costing Information Center > Budgetary Control And
Funds Check R12: A Case Study Using a Non-Integrated Budget > Note 1317340.1

This note is intended to provide some technical information related to data created
in Projects tables when performing budgetary control activities. It can also assist in
interpreting the output of the Funds Check Data Collection diagnostic test. We will
examine some of the key tables and columns involved and provide some detail on
what the information means and how it is affected by various activities.
The data collection diagnostic output for both the purchase order and supplier
invoice used in the case study have been uploaded to this note as examples for
reference.
SOLUTION

1. Table: PA_BUDGETARY_CONTROL_OPTIONS
Description:

This table holds the settings which determine if a project is using budgetary
integration or budgetary control, and if so, provides the details of the budget types
involved, the type of integration (top-down vs bottom-up), levels of budgetary
control, and time intervals. Rows stored in this table can be associated with a
project, project template, or a project type. See Note 1315336.1 for the details of
the setup options that are related to this data.
Key Column Details

PROJECT_ID, PROJECT_TYPE, PROJECT_TYPE_ORG_ID, and


BUDGET_TYPE_ID
Because this data can be defined at project, template, or project type levels,
records will be identified by either the project_id, or by the combination of
project_type and project_type_org_id. If project_id is populated, the
project_type and project_type_org_id will be null and vice versa. Together with
the budget_type_id these columns form the primary key of the table.
BALANCE_TYPE
Valid values are based on the lookup type "BALANCE_TYPE" in PA_LOOKUPS
LOOKUP_CODE

MEANING

Budget

Encumbrance

This value determines what, if any, type of budget integration is in effect. If


the value is Encumbrance then top-down integration is in use. If the value is

Budget, then bottom up integration is in use. When the value is null, the budget
is not integrated.

EXTERNAL_BUDGET_CODE, GL_BUDGET_VERSION_ID
When using bottom-up budget integration, the external_budget_code column
stores the budget_name of the external GL budget and gl_budget_version_id
stores the ID of the budget version from GL_BUDGET_VERSIONS. When topdown integration is used, gl_budget_version_id will be null, and the valid values
for external_budget_code come from the PA lookup type "EXTERNAL_BUDGET"

LOOKUP_CODE

MEANING

CC

Contract Commitment Funding Budget

GL

General Ledger Funding Budget

If there is no integration, both values will be null.


BDGT_CNTRL_FLAG
The value of this column will be 'Y' or 'N' depending on whether budgetary
control is enabled. If using bottom-up integration, this value should be 'N'.
When using top-down integration, it should be 'Y'.

AMOUNT_TYPE
This value describes the starting boundary for your budgetary control time
intervals. The valid values are defined by the PA lookup type
FUNDS_CONTROL_AMOUNT_TYPE
LOOKUP_CODE

MEANING

PTD

Period to Date

YTD

Year To Date

PJTD
Project To Date
BOUNDARY_CODE
This value describes the ending boundary for your budgetary control time
intervals. The valid values are defined by the PA lookup type BOUNDARY_CODE
LOOKUP_CODE

MEANING

Period

Year

Project

FUND_CONTROL_LEVEL_PROJECT, FUND_CONTROL_LEVEL_TASK
FUND_CONTROL_LEVEL_RES_GRP FUND_CONTROL_LEVEL_RES
These four columns contain the control levels for the project, tasks, resource
groups and resources respectively when budgetary controls are enabled. The
valid options are defined by the PA lookup type FUNDS_CONTROL_LEVEL_CODE
LOOKUP_CODE
A

MEANING
Advisory

Absolute

Default from Resource List

None

2. Table PA_BUDGETARY_CONTROLS
Description:

This table stores the controls that are to be enforced for a particular project. It is
initially populated when you baseline your control budget for the first time. The
baseline process uses your budgetary control and integration option settings on
the project (and optionally the budget resource list) to generate the default
controls for the project.
Once the budget has been baselined, you can update these values in the Budgets
form, via the "Tools > Budgetary Controls" menu option.
The records created will depend on your budget entry method, and at what levels
you are budgeting, as controls will not be applicable at levels where you are not
budgeting.
Key Column Details

FUNDS_CONTROL_LEVEL_CODE
This column indicates the funds control level to be enforced for the particular
combination of budget elements. Like the control settings in
PA_BUDGETARY_CONTROL_OPTIONS, the valid options are defined by the PA
lookup type FUNDS_CONTROL_LEVEL_CODE, however since these are the actual
controls and not the configuration settings, the value 'D' (Default from Resource
List) will not appear here:
LOOKUP_CODE
MEANING
A

Advisory

Absolute

None

BUDGET_TYPE_CODE
This column indicates the budget type for the controlled budget on the project.

PROJECT_ID, TOP_TASK_ID, TASK_ID, PARENT_MEMBER_ID,


RESOURCE_LIST_MEMBER_ID
These columns indicate the particular combination of budget elements for
which the control applies. Project level controls will have null values for all of
these columns except the project_id. Other level values will depend on your
budget entry method.
o

If your budget is not categorized by resources, then the


parent_member_id and resource list_member_id will be null on all records.

If it is categorized by resource but your resource list does not group


resources, then the parent_member_id will be -1, and the
resource_list_member_id will contain the id of the individual resource. Both

values will be null on the project level record and on task level records.
o

If it is categorized by resources and the resource list is grouped, then


the parent_member_id will hold the resource_list_member_id of the resource
group, and the resource_list_member_id will hold the id of the individual
resource. Since the resource groups are also members of the list there will
be entries for them as individual resources as well. For these the value of
parent_member_id will be 0. Again both will be null on the project and task
level control records.

If you are not budgeting by tasks, the task_id and top_task_id columns
will be 0 on all but the project level record, on which they will be always be
null.

If you are budgeting either by top task only, or by lowest tasks only,
there will be task and resource level records for each task of the specified
level with the task_id populated. Top_task_id will be 0, regardless of whether
they are top or lowest level tasks.

If you are budgeting at top and lowest task levels, there will be task
and resource level records for each top and lowest level task regardless of
which level the budget has actually been entered. In this case, regardless of
whether the task is a lowest task or a top task, both task_id and top_task_id
are populated with the same value, which is just the task_id of the task. So
you can see from this case, and the last that the TOP_TASK_ID column does
not generally actually store the top_task_id.

3. Table PA_BUDGET_ENTRY_METHODS
Description:

This table stores the budget entry methods that determine how you enter a
budget. The budget entry method you select for your budget controls:

At what level in the work breakdown structure you enter budget amounts
(project, top and/or lowest tasks)
What time periods, if any, are used for budgeting

Whether or not amounts are categorized by resources

What types of amounts can be entered (cost quantity, raw cost, burdened
cost, revenue quantity, and revenue)

Key Column Details

ENTRY_LEVEL_CODE
This column specifies the level of the work breakdown structure at which you
can enter budget amounts. The valid values are defined by the PA lookup type
BUDGET ENTRY LEVEL:
LOOKUP_CODE
MEANING
L

Lowest Task

Top and Lowest Task

Project

Top Task

CATEGORIZATION_CODE
This column indicates whether the budget amounts are categorized by
resources or not. The valid values are:
o

'R' - Budget is categorized by resources

'N' - Budget is not categorized by resources

COST_QUANTITY_FLAG, RAW_COST_FLAG, BURDENED_COST_FLAG,


REV_QUANTITY_FLAG, REVENUE_FLAG
These columns indicate what types of amounts will be enterable on your
budget. The values are simply 'Y' or 'N' to indicate for each amount type if it
can be entered on the budget.

TIME_PHASED_TYPE_CODE
The time_phased_code indicates whether amounts will be entered by time
periods, and if so, what kind. Valid values are defined by the PA lookup type
BUDGET TIME PHASED TYPE:
LOOKUP_CODE

MEANING

GL Period

PA Period

Date Range

None

4. Table PA_BC_PACKETS
Description:

The PA_BC_PACKETS table temporarily stores data related to funds checking


processes. It records transaction attributes, and the detailed results of the funds
checking process.
The data is not stored here permanently, however. The profile option "PA: Days to
maintain BC packets" indicates the number of days that this data will normally
be stored. For manual funds check results and funds check failures, any records
older than this number of days will be deleted each time the funds check process is
run. For successful funds check results resulting from the approval of commitment
documents, these records are used to update the funding balances in
PA_BC_BALANCES. They will be deleted only after they have been posted to the
balances table (by running the PRC: Maintain Budgetary Control Balances process)
and have exceeded the storage time limit defined by the profile option.
Key Column Details

PACKET_ID, BC_PACKET_ID, PARENT_BC_PACKET_ID


Together the packet_id and bc_packet_id form the primary key of this table. The
packet_id generally groups records at the packet level be it invoice level,
purchase order level, line level etc., and the bc_packet_id identifies each record
within the packet uniquely. The parent_bc_packet_id will contain the

bc_packet_id of the raw cost transaction record when the record is a burden
cost record.
STATUS_CODE
This column indicates the result of the funds check process and what kind of
funds check was performed. The valid values are defined by the PA lookup type
FC_STATUS_CODE
LOOKUP_CODE

MEANING

Approved

Failed funds check

Incomplete

Pending

Rejected

Passed funds check

Fatal Error

Transferred
The statuses 'S' and 'F' are used to indicate success and failure when
a manual funds check (which does not affect the control balances) is
performed. The 'A' and 'R' statuses reflect the result of the funds check during
document approval or validation. When the status is 'A', indicating the
document approval succeeded, these records amounts are eligible to be posted
to the budgetary control balances in PA_BC_BALANCES. At the same time the
transaction data is created in PA_BC_COMMITMENTS so that a record of
approved transactions affecting budget balances exists even when they are
eventually removed from this table. Once the record has been posted to the
balances, the status is updated to 'X'.
The status 'T' indicates that an unexpected error has occurred during the funds
check process.
DOCUMENT_TYPE , DOCUMENT_HEADER_ID, DOCUMENT_LINE_ID,
DOCUMENT_DISTRIBUTION_ID
The document type indicates what kind of transaction the packet corresponds
to. This column along with the document_header_id, document_line_id, and
document_distribution_id allow you to link the packet back to the source
system. The valid values for document_type are defined by the PA lookup type
FC_DOC_TYPE:
LOOKUP_CODE

MEANING

AP

Supplier Invoice

PO

Purchase Orders

REQ

Requisitions

BGT

Budget

EXP

Expenditures

REV

Revenue

CC_C_CO

Contract Confirmed Commitment

CC_C_PAY

Contract Confirmed Payment

CC_P_CO

Contract Provisional Commitment

CC_P_PAY

Contract Provisional Payment


The followingshows how these columns link to the source system for
supplier invoices, purchase orders and requisitions:
DOCUMENT
_TYPE

FIELD

LINKS TO

AP

DOCUMENT_HEADER_
AP_INVOICES_ALL.INVOICE_ID
ID

AP

DOCUMENT_LINE_ID

AP

DOCUMENT_DISTRIBU AP_INVOICE_DISTRIBUTIONS_ALL.INVOICE_
TION_ID
DISTRIBUTION_ID

PO

DOCUMENT_HEADER_
PO_HEADERS_ALL.PO_HEADER_ID
ID

PO

DOCUMENT_LINE_ID

PO

DOCUMENT_DISTRIBU PO_DISTRIBUTIONS_ALL.PO_DISTRIBUTION_
TION_ID
ID

REQ

DOCUMENT_HEADER_ PO_REQUISITION_HEADERS_ALL.REQUISITIO
ID
N_HEADER_ID

REQ

DOCUMENT_LINE_ID

AP_INVOICE_LINES_ALL.LINE_NUMBER

PO_LINES_ALL.PO_LINE_ID

PO_REQUISITION_LINES_ALL.PO_REQUISITIO
N_LINE_ID

DOCUMENT_DISTRIBU PO_REQ_DISTRIBUTIONS_ALL.DISTRIBUTION
TION_ID
_ID
REFERENCE1, REFERENCE2, REFERENCE3
These columns also contain reference data to tie the transaction back to its
source. For supplier invoices, purchase orders, and requisitions these columns
are populated with the same values as the document_type,
document_header_id, and document_distribution_id (in that order).
REQ

FUNDS_PROCESS_MODE
This column indicates whether the funds check is being performed for a
transaction (Value='T') or as part of the budget baselining process (Value='B').

BUDGET_VERSION_ID
This column holds the budget version id for the budget version against which
funds are being checked.

BURDEN_COST_FLAG
This column indicates whether the transaction corresponds to the raw or burden
costs components of a transaction or a cost reversal. The valid values are
defined by the PA lookup type BC_PKT_BURDEN_COST_FLAG:
LOOKUP_CODE

MEANING

Identifies the raw cost component of the distribution


line

Identifies the burden cost component of the


distribution line

Identifies the record for raw and burden cost


reversals
BALANCE_POSTED_FLAG
This column is 'N' unless the record balances have been posted to
PA_BC_BALANCES, in which case this flag is updated to 'Y'.
R

RESOURCE_LIST_MEMBER_ID, PARENT_RESOURCE_ID
Identifiers of the resource list member, and where appropriate the resource
group to which the resource belongs.

EFFECT_ON_FUNDS_CODE
This column indicates whether the transaction is decreasing available funds
(Value='D') or increasing available funds (Value='I'). These values are defined
in the GL lookup type EFFECT_ON_FUNDS_CODE.

RES_RESULT_CODE, RES_GRP_RESULT_CODE,
TASK_RESULT_CODE, TOP_TASK_RESULT_CODE, PROJECT_RESULT_CODE,
RESULT_CODE
These columns indicate the results of the funds check for the transaction at
each of the applicable levels: resource, resource group, task, top task, project,
and the overall result of the funds check. The first letter of the code (P or F)
will indicate whether the result was a pass or a failure. The full meaning of the
code is defined by the PA lookup type FC_RESULT_CODE. You can see the
meaning for all of these codes in Note 445119.1 or alternatively by running the
following SQL query:
SELECT lookup_code, meaning FROM pa_lookups
WHERE lookup_type = 'FC_RESULT_CODE';

The funds check process checks funds at each of the applicable levels from
lowest to highest (resource > resource group > task > top task > project). If
there is a failure at any level the result code for that level is set to indicate the
failure, and this result is rolled upward to the remaining levels and the final
result.

BUD_RESOURCE_LIST_MEMBER_ID BUD_TASK_ID
These columns will indicate at which level budget amounts have been
allocated. For resources this could hold the id of the resource or of the resource
group. For tasks it could hold the task id or the top task id depending on where
funds were actually budgeted
R_FUNDS_CONTROL_LEVEL_CODE,
RG_FUNDS_CONTROL_LEVEL_CODE, T_FUNDS_CONTROL_LEVEL_CODE,
TT_FUNDS_CONTROL_LEVEL_CODE, P_FUNDS_CONTROL_LEVEL_CODE
These columns indicate the level of funds control to be enforced at each of the
following levels respectively: Resource, resource group, task, top task, and
project. The values are defined by the PA lookup type
FUNDS_CONTROL_LEVEL_CODE. The valid values are
LOOKUP_CODE
A

MEANING
Advisory

Absolute

None

COMPILED_MULTIPLIER
For records representing the burden amount of a transaction, this column holds
the compiled burden multiplier that is calculated based on the burden schedule
and structure used on the project.

FC_START_DATE, FC_END_DATE
These columns indicate the start and end date of the funds check period.

BURDEN_METHOD_CODE
The burden method code indicates what kind of burdening is in effect. The
values are defined by the PA lookup type BURDEN_ACCOUNTING:
LOOKUP_CODE

MEANING

Burden amount shown as a summarized txn on


same Project/Task.

Burden Amount on the same transaction

There is no burden cost for the transaction

SOURCE_EVENT_ID
This column holds the event_id of the encumbrance event generated by the
funds check process in XLA_EVENTS.

5. Table PA_BC_BALANCES
Description:

PA_BC_BALANCES stores actual, budget and encumbrance balances by project, top


task, task, resource group, resource, period, budget version and period.
Initial balances are created when the budget is baselined. Additional records are
created for transactions affecting funds balances when you run the PRC: Maintain
Budgetary Control Balances process.
Key Column Details

PROJECT_ID, TOP_TASK_ID, TASK_ID, PARENT_MEMBER_ID,


RESOURCE_LIST_MEMBER_ID

These columns indicate the budget elements to which a particular budget,


encumbrance, or actual amount are mapped.
BUDGET_VERSION_ID
This column identifies the budget version to which the balance belongs. Balance
amounts are maintained for each baselined version of the budget. When a new
baseline version is created existing balances are mapped to the new baseline
budget, and subsequent expense commitments affect the balance of the current
baselined version.
BALANCE_TYPE
Balance types correspond to the document type in PA_BC_PACKETS. They are
defined by the same lookup type. Budget amounts have a balance type of 'BGT'
START_DATE, END_DATE
These columns represent the start and end dates of the funds check period for
which a balance is being maintained. These dates correspond to FC_START_DATE
and FC_END_DATE in PA_BC_PACKETS and are based on the amount type and
boundary code settings in your budgetary control options.
ACTUAL_PERIOD_TO_DATE, BUDGET_PERIOD_TO_DATE,
ENCUMB_PERIOD_TO_DATE
These columns reflect the current balance for the actual, budget, and
encumbrance amounts for the period, budget version, balance type, and budget
elements.
We hope you find this information useful. Our desire is to provide the right
information when you need it. Please let us know how we are doing. We welcome
your feedback

You might also like