PA Budget Upload

Description

Overview of the PA Project Budget Upload process

The PA Project Budget Upload supports the creation/update of standard project budgets.

At this stage it does not support the creation/update of Financial Plan Budgets.

The PA Project Budget Upload allows users to:

Create new working budgets.

When creating a new working budget, any existing working budget for the specified Project and Budget Type will be overwritten.

The upload allows the user to create a working budget either by entering the data directly into an empty upload excel file, or by copying a prior version of the budget and modifying this in the upload excel file.

Update existing working budgets.

This option allows for the update of an existing working budget. In this mode the existing budget is retained, and the update mode allows for individual budget lines to be added, updated, and/or deleted from the existing working budget.

Additionally, the upload allows users to Baseline a Working Budget.

Working Budgets can be uploaded against the Projects belonging to the Operating Units accessible to the responsibility in which the PA Project Budget Upload process is run.

1. Process Parameters

Upload ModeMandatory.

Create

When creating a new working budget, any existing working budget for the specified Project and Budget Type will be overwritten.

The upload allows the user to create a working budget either by entering the data directly into an empty upload excel file, or by copying a prior version of the budget and modifying this in the upload excel file.

Update

This option allows for the update of an existing working budget. In this mode the existing budget is retained, and the update mode allows for individual budget lines to be added, updated, and/or deleted from the existing working budget.

Product SourceMandatory.

The Product Source to be used against the uploaded Project Events

Copy Existing BudgetOptional.

Only Applies to Create Mode.

Enables Create from Copy Mode.

By entering Yes in this parameter, the user can create a new working budget from a copy of a prior budget version.

Setting this parameter to yes allows the user to download existing budget data in Create Mode by specifying the project, budget type, and budget version parameters.

Leaving this parameter blank in Create Mode will result in a blank upload excel template being generated.

This parameter cannot be entered in Update Mode.

Operating UnitOptional.

When downloading Budget Data, this parameter will restrict the download to budgets within the specified Operating Units.

If the Operating Unit parameter is specified here, then the upload excel template will be restricted to Projects within the specified Operating Unit only.

Note: The following parameters are used in determining the Budget Data to be downloaded in Update Mode and Create from Copy Mode.
Project NumberOptional.
Project NameOptional.
Budget TypeOptional.
Budget VersionNot applicable to Update Mode.
Required in Create from CopyWhen creating a new working budget from a copy of a prior budget version, the user must select the prior version of the budget they want to copy.This can be any prior baselined version, or the existing working version:
Task NumberOptional.
Task NameOptional.
Resource AliasOptional.
Period FromOptional.
Period ToOptional.
Budget Line Start DateOptional.
Budget Line End DateOptional.

Note: The following parameters determines the order in which the downloaded budget lines will appear in the upload excel template.

By default, the budget lines are sorted within the Budget by (Sort Precedence1) Task Number, (Sort Precedence 2) Budget Line Start Date, (Sort Precedence 3) Resource Alias.

This sort order can be amended by setting the following parameters as per the user’s preference.

Options are:

  • Task Number
  • Task Name
  • Date
  • Resource Alias
Period ToRequired. Default: Task Number
Budget Line Start DateRequired. Default: Date
Budget Line End DateRequired. Default: Resource Alias

2. Pre-defined Templates

There are no pre-defined templates with this upload. Users can create their own templates as per their requirements.

By default, when no template is specified when running the upload process, all available fields are included in the generated template.

3. Excel Upload Template

By default, when no template is specified when running the upload process, all available fields are included in the generated template. Users can create their own templates as per their requirements.

Upload Status and Budget Header Columns:

Budget Line Columns:

Budget Header and Budget Line Descriptive Flexfield Columns:

The Action, Status and Message columns are used by the upload process to indicate the current status of the row. For this upload, the Action will always show as Create. The possible values for these columns are shown below:

Before Upload
Entering data into a new row
On Save – If there is a validation error (like missing required Data

The message will indicate the reason the validation failed.

Note: If you attempt to upload an excel file contain rows with an Invalid Status, these rows will be ignored by the upload process.
On Save – If validation is successful
After Upload
Row was upload successfully
Row was not processed successfully

The message will indicate the reason the upload of this row failed.

The columns in the Excel template whose heading are highlighted in Yellow are required columns which must have a value specified before you can upload the row:

In some cases, some columns not highlighted as required, will be required dependent on the other data selected. For such fields that are required/optional dependent on the other data entered will be validated during the upload.

The columns that show a dropdown symbol to the right of the column, have List of Values (LOV) associated with them. The LOV can be activated by double clicking in the cell, or by partially entering a value and tabbing out of the cell:

Some of the cells in the Excel will default automatically based on the data entered in other cells.

For example:

  • The Project Name will default automatically from the selected Project Number.
  • The Entry Method and Resource List will default automatically once the Project Number and Budget Type are entered.
  • The Task Name will default automatically from the selected Task Number.
  • The Unit of Measure will default automatically once the Resource Alias is specified.

4. Specific points to note regarding the PA Project Budget Upload Excel Template

1. To Baseline a working Budget on upload, set the Baseline Budget column to Yes against the Budget to be baselined:

2. In Update Mode, to delete a budget line from a Budget, set the Delete This Line column to Yes against the budget lines to be deleted:

3. If you use hierarchical resource lists, then the Resource Alias List of Values will show the complete path of the resource alias within the hierarchy separated by the pipe delimiter as per the below screen shot:

Additionally, this is how the data is stored in the Resource Alias column as well:

As the Resource Alias name can be repeated within the hierarchy (as shown below), this is necessary in order for the upload to determine the specific resource within the hierarchy the budget line should be associated with.

5. Upload Process

This section outlines the overall process for performing a Blitz Upload.

Note: This example uses a different upload; however, the process is the same regardless of the upload being performed.
StepInitiated FromAction
1EBS Blitz Report FormGenerate the Upload Excel Template.

  • Select the Blitz Upload Report to be run.
  • Optionally select the template to be used for the generated Excel.
  • Enter the required parameters.
  • Click on the Run Button to run the report and generate the Excel.

This will generate the excel template in which the user will enter the date to be uploaded.

2ExcelEnter the data as required into the generated Excel.

Remember to save the excel after data entry is complete and all rows show the status valid:

3EBS Blitz Report FormInitiate the Upload Process.

  • Select the Blitz Upload Report to be run.
  • Click on the Upload Button to run the report and generate the Excel.

This will open a browser window where you can upload the Excel file to the server for processing.

4Browser WindowUpload the Excel File to the server.

  • Click on Choose File and select the excel file to be uploaded.
  • Click on Submit to initiate the Upload.
  • Close the Browser window once the upload confirmation is received.

5ExcelReview the Upload results.

  • After the upload is processed, a new Excel is automatically generated showing the results of the upload.
  • Success Status:
  • Error Status
Note: Any errors can be corrected in this new excel, and the upload process repeated using this excel instead of the original.

6. Upload Process Concurrent Requests

Blitz Reports and Blitz Upload are run as concurrent requests. For a Blitz Upload Process, 3 concurrent requests are submitted. One when the process is initially run to generate the template, and two when the upload process is initiated.

Note: This example uses a different upload; however, the process is the same regardless of the upload being performed.
StagePurposeRequest Output
Initial RunProgram: XXEN_REPORT

Download data (applicable to uploads that allow updates) and generate the excel template.

The excel template to be used to enter/update the date for upload
UploadProgram: XXEN_UPLOAD

Performs the Upload processing of the data into Oracle EBS

None.

The log file of this request will show detailed debugging information from the upload process if the profile option Blitz Report Debug is set to Yes.

Note: When profile option Blitz Report Debug is set to Yes, the log file of each request is opened automatically instead of the output file. In this case use View Output of the request in order to open the generated excels manually.
UploadProgram: XXEN_REPORT

Generates the excel containing the results of the Upload

The excel template containing the rows uploaded and the status of the upload process for each row uploaded.
/*
&report_table_name
*/
select
x.*
from
(
select
decode(:p_upload_mode,xxen_upload.action_create,xxen_upload.action_meaning(xxen_upload.action_create),null) action_,
decode(:p_upload_mode,xxen_upload.action_create,xxen_upload.status_meaning(xxen_upload.status_new),null)status_,
null message_,
null baseline_message_,
null request_id_,
null modified_columns_,
:p_upload_mode upload_mode_,
decode(:p_upload_mode,xxen_upload.action_create,to_number(null),pbl.budget_line_id) budget_line_id,
--
-- Budget
--
:p_pm_product_code product_source,
haouv.name operating_unit,
ppa.segment1 project_number,
ppa.name project_name,
pbt.budget_type,
pbv.version_name,
--pbv.version_number,
--pbv.budget_status_m status,
pbv.description,
pbem.budget_entry_method entry_method,
prl.name resource_list,
null baseline_budget,
xxen_util.meaning(pbv.change_reason_code,'BUDGET CHANGE REASON',275) change_reason,
--
-- Budget line
--
pt.task_number,
pt.task_name,
pbl.period_name,
pbl.start_date,
pbl.end_date,
prlm.alias_path resource_alias,
pbl.raw_cost,
pbl.burdened_cost,
pbl.revenue,
pbl.quantity,
xxen_util.meaning(pra.unit_of_measure,'UNIT',275) unit_of_measure,
pbl.description line_description,
--xxen_util.meaning(pbl.change_reason_code,'BUDGET CHANGE REASON',275) line_change_reason,
--xxen_util.meaning(pra.track_as_labor_flag,'YES_NO',0) track_as_labor,
null delete_this_line,
--
-- DFF Columns
pbv.attribute_category budget_attribute_category,
pbv.attribute1 budget_attribute1,
pbv.attribute2 budget_attribute2,
pbv.attribute3 budget_attribute3,
pbv.attribute4 budget_attribute4,
pbv.attribute5 budget_attribute5,
pbv.attribute6 budget_attribute6,
pbv.attribute7 budget_attribute7,
pbv.attribute8 budget_attribute8,
pbv.attribute9 budget_attribute9,
pbv.attribute10 budget_attribute10,
pbv.attribute11 budget_attribute11,
pbv.attribute12 budget_attribute12,
pbv.attribute13 budget_attribute13,
pbv.attribute14 budget_attribute14,
pbv.attribute15 budget_attribute15,
pbl.attribute_category line_attribute_category,
pbl.attribute1 line_attribute1,
pbl.attribute2 line_attribute2,
pbl.attribute3 line_attribute3,
pbl.attribute4 line_attribute4,
pbl.attribute5 line_attribute5,
pbl.attribute6 line_attribute6,
pbl.attribute7 line_attribute7,
pbl.attribute8 line_attribute8,
pbl.attribute9 line_attribute9,
pbl.attribute10 line_attribute10,
pbl.attribute11 line_attribute11,
pbl.attribute12 line_attribute12,
pbl.attribute13 line_attribute13,
pbl.attribute14 line_attribute14,
pbl.attribute15 line_attribute15,
--
null mark_as_original
from
hr_all_organization_units_vl haouv,
pa_projects_all ppa,
pa_budget_versions pbv,
pa_budget_types pbt,
pa_budget_entry_methods pbem,
pa_resource_lists prl,
pa_resource_assignments pra,
pa_budget_lines pbl,
pa_tasks pt,
--pa_resource_list_members prlm
(select
  prlm.resource_list_id,
  prlm.resource_list_member_id,
  prlm.alias alias,
  substr(sys_connect_by_path (prlm.alias,'|'),2) alias_path
 from
  pa_resource_list_members prlm
 where
  nvl(prlm.migration_code, '-99') <> 'N'
 connect by
  prior prlm.resource_list_member_id = prlm.parent_member_id and
  prior prlm.resource_list_id = prlm.resource_list_id
 start with
  prlm.parent_member_id is null
) prlm
where
1=1 and
( (:p_upload_mode = xxen_upload.action_update and pbv.budget_status_code IN ('W','S')) or -- draft
  (:p_upload_mode = xxen_upload.action_create and :p_create_copy = xxen_util.meaning('Y','YES_NO',0))
) and
haouv.name = nvl(:p_operating_unit,haouv.name) and
nvl(:p_pm_product_code,'?') = nvl(:p_pm_product_code,'?') and
haouv.organization_id in (select mgoat.organization_id from mo_glob_org_access_tmp mgoat union select fnd_global.org_id from dual where fnd_release.major_version=11) and
haouv.organization_id = ppa.org_id and
ppa.project_id = pbv.project_id and
pbv.budget_type_code = pbt.budget_type_code and
pbv.budget_entry_method_code = pbem.budget_entry_method_code and
pbv.resource_list_id = prl.resource_list_id and
pbv.budget_version_id  = pra.budget_version_id (+) and
pbv.project_id = pra.project_id (+) and
pra.resource_assignment_id = pbl.resource_assignment_id (+) and
pra.task_id = pt.task_id (+) and
pra.resource_list_member_id = prlm.resource_list_member_id (+)
&not_use_first_block
&processed_errors_query
&processed_success_query
&processed_run
) x
order by
x.operating_unit,
x.project_number,
x.project_name,
x.budget_type,
x.version_name,
&lp_sort_col1
&lp_sort_col2
&lp_sort_col3
x.budget_line_id
Parameter NameSQL textValidation
Upload Mode
 
LOV
Product Source
 
LOV
Copy Existing Budget
 
LOV
Operating Unit
 
LOV
Project Number
ppa.segment1=:p_project_number
LOV
Project Name
ppa.name=:p_project_name
LOV
Budget Type
pbt.budget_type=:p_budget_type
LOV
Budget Version
decode(pbv.budget_status_code,'B',to_char(pbv.version_number),xxen_util.meaning(pbv.budget_status_code,'BUDGET STATUS',275)) = :p_budget_version
LOV
Task Number
pt.task_number=:p_task_number
LOV
Task Name
pt.task_name=:p_task_name
LOV
Resource Alias
prlm.alias=:p_resource_alias
LOV
Period From
pbl.period_name is not null and
pbl.start_date >=
(select
 min(pbpv.period_start_date)
 from
 pa_budget_periods_v2 pbpv
 where
 pbpv.org_id = ppa.org_id and
 pbpv.period_name = :p_period_from
)
LOV
Period To
pbl.period_name is not null and
pbl.end_date <=
(select
 max(pbpv.period_end_date)
 from
 pa_budget_periods_v2 pbpv
 where
 pbpv.org_id = ppa.org_id and
 pbpv.period_name = :p_period_to
)
LOV
Budget Line Start Date
pbl.start_date=:p_date_start
Date
Budget Line End Date
pbl.end_date=:p_date_end
Date
Budget Line Active On Date
trunc(:p_date_active) between pbl.start_date and pbl.end_date
Date
Sort Precedence 1
nvl(x.start_date,(select pbpv.period_start_date from hr_all_organization_units_vl haouv, pa_budget_periods_v2 pbpv where haouv.organization_id = pbpv.org_id and haouv.name = x.operating_unit and pbpv.period_name = x.period_name and rownum <= 1)),
LOV
Sort Precedence 2
nvl(x.start_date,(select pbpv.period_start_date from hr_all_organization_units_vl haouv, pa_budget_periods_v2 pbpv where haouv.organization_id = pbpv.org_id and haouv.name = x.operating_unit and pbpv.period_name = x.period_name and rownum <= 1)),
LOV
Sort Precedence 3
nvl(x.start_date,(select pbpv.period_start_date from hr_all_organization_units_vl haouv, pa_budget_periods_v2 pbpv where haouv.organization_id = pbpv.org_id and haouv.name = x.operating_unit and pbpv.period_name = x.period_name and rownum <= 1)),
LOV