FA Asset Upload

Description

FA Asset Upload creates, updates and retires Oracle Assets fixed assets in a depreciation book, from Excel, through the standard Fixed Assets APIs. A Record Type on each row chooses Addition (create or update an asset) or Retirement. It is the spreadsheet alternative to entering assets one at a time in the Assets forms.

When to use it

  • Mass-load newly acquired or migrated fixed assets into a corporate book.
  • Bulk-update asset descriptions, tags, serial numbers and flexfield attributes.
  • Reclassify assets to new categories in bulk.
  • Make bulk financial adjustments – cost, life, method, prorate convention, salvage.
  • Retire assets in bulk – in full, by cost, or by units.
  • Seed accumulated depreciation when bringing assets in from a legacy system.

Before you start

  • Blitz Report is installed and you are signed in to an Oracle Assets responsibility with access to the target depreciation book.
  • The asset category is set up and assigned to the book, and the expense account and location are valid for the book’s ledger.
  • An FA depreciation period is open.
  • After uploading retirements, run the standard Calculate Gains and Losses program to finalize them.

Step 1 – Choose a mode, set the parameters and download

In Blitz Report, open FA Asset Upload, choose an Upload Mode (Create for an empty template, or Create, Update to download existing assets), and set the parameters:

ParameterPurpose
Upload ModeCreate or Create, Update. Default is Create, Update.
BookThe corporate depreciation book to load into.
Asset Number / Category / Asset TypeRestrict the download to specific assets.
Net Book Value Greater / Less ThanRestrict the download by net book value.
Include Retired AssetsYes also includes fully retired assets.

Run the upload to download and open the Excel file.

Step 2 – Add or update assets

For an addition, set Record Type to Addition and enter the asset’s Description, Category, Asset Type and Units, the financial details (Cost, Depreciation Method, Life, Date Placed In Service, Prorate Convention), and the assignment (Book, Expense Account, Location, Employee). Leave Asset Number blank to let Assets generate it when automatic numbering is enabled. On an existing asset, only the values that change are applied.

Step 3 – Retire assets

For a retirement, set Record Type to Retirement and enter the Date Retired and Retirement Type, plus Cost Retired or Units Retired for a partial retirement. After uploading, run the standard Calculate Gains and Losses program to finalize the retirements and post the gain or loss.

Step 4 – Validate and Save

Click Validate and Save. This checks for missing required values and runs the upload’s validation, then saves the file. Correct anything it flags before continuing.

Step 5 – Upload and view the result

Back in Blitz Report, click Upload and select your saved file. This submits the Blitz Upload request, which creates, updates and retires the assets through the Fixed Assets APIs. When it finishes, a result report opens showing each row as success or error.

What’s produced

  • Created, updated and retired assets in the chosen depreciation book.
  • A result report listing every row with a status (success or error) and a message.

Common questions

Do I need to run Mass Additions or Post Mass Additions after the upload?
No. This upload calls the Fixed Assets APIs directly and creates the asset immediately – it does not use the Mass Additions interface.

How do I retire an asset?
Set Record Type to Retirement and fill the retirement columns (at least Date Retired and Retirement Type, plus Cost Retired or Units Retired). Then run the standard Calculate Gains and Losses program to finalize the retirement.

Can I leave Asset Number blank for new assets?
Yes, if automatic asset numbering is enabled for the book – Assets will assign the number.

Why are fully retired assets missing from my download?
They are excluded by default. Set Include Retired Assets to Yes to include them.

Do I have to enter the full expense account or location string?
No. You can enter the full account or location, use the alias columns, or fill the individual segment columns.

Troubleshooting

MessageCauseWhat to do
Invalid expense accountThe expense account is not a valid, enabled, postable combination for the book’s ledger.Pick a valid Expense Account, or correct the segment values or alias.
Invalid locationThe location flexfield combination is invalid.Use a valid Location or fix the location segment values.
Trade-in asset cannot be the same as the asset being retiredOn a retirement, the trade-in asset equals the asset being retired.Set a different trade-in asset, or clear it.
Retirement validation errorRequired retirement values are missing, or a partial-unit retirement is not allowed for the asset.Provide the Date Retired and Retirement Type, and a valid Cost Retired or Units Retired.
Fixed Assets API error on a rowThe underlying FA API rejected the row.Read the message, fix the field, and re-upload; the row is rolled back so no partial change is left.
select
null action_,
null status_,
null message_,
null modified_columns_,
null request_id_,
'Addition' record_type,
fav.asset_number,
fav.description,
fav.tag_number,
fcbk.concatenated_segments category,
fav.serial_number,
fakk.concatenated_segments asset_key,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='ASSET TYPE' and fl0.lookup_code=fav.asset_type) asset_type,
fav.current_units units,
fab_p.asset_number parent_asset,
fav.manufacturer_name manufacturer,
fav.model_number model,
fw.warranty_number,
fl.lease_number,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='YESNO' and fl0.lookup_code=fav.in_use_flag) in_use,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='YESNO' and fl0.lookup_code=fav.inventorial) in_physical_inventory,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='PROPERTY TYPE' and fl0.lookup_code=fav.property_type_code) property_type,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='1245/1250 PROPERTY' and fl0.lookup_code=fav.property_1245_1250_code) property_class,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='OWNLEASE' and fl0.lookup_code=fav.owned_leased) ownership,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='NEWUSE' and fl0.lookup_code=fav.new_used) bought,
fav.commitment,
fav.investment_law,
fb.book_type_code book,
fb.cost,
fb.original_cost,
case when (select fdp.fiscal_year from fa_deprn_periods fdp where fds.book_type_code=fdp.book_type_code and fds.period_counter=fdp.period_counter)=fbc.current_fiscal_year then fds.ytd_deprn else 0 end ytd_depreciation,
fds.deprn_reserve depreciation_reserve,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='SALVAGE_DEPRN_LIMIT_TYPE' and fl0.lookup_code=decode(fb.salvage_type,'AMT','AMOUNT','PCT','PERCENT',fb.salvage_type)) salvage_value_type,
fb.percent_salvage_value,
fb.salvage_value,
fb.reval_ceiling revaluation_ceiling,
fb.reval_amortization_basis revaluation_amortization_basis,
fb.recoverable_cost,
(fb.original_cost-nvl(fds.deprn_reserve,0)) net_book_value,
fb.deprn_method_code depreciation_method,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='YESNO' and fl0.lookup_code=fb.depreciate_flag) depreciate,
floor(fb.life_in_months/12) life_years,
mod(fb.life_in_months,12) life_months,
fb.date_placed_in_service,
fb.prorate_convention_code prorate_convention,
fth.amortization_start_date,
fb.bonus_rule,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='SALVAGE_DEPRN_LIMIT_TYPE' and fl0.lookup_code=decode(fb.deprn_limit_type,'AMT','AMOUNT','PCT','PERCENT',fb.deprn_limit_type)) depreciation_limit_type,
fb.allowed_deprn_limit_amount depreciation_limit_amount,
fb.allowed_deprn_limit depreciation_limit_pct,
fab_g.asset_number group_asset,
null expense_account_alias,
gcck.concatenated_segments expense_account,
gcck.segment1 expense_segment1,
gcck.segment2 expense_segment2,
gcck.segment3 expense_segment3,
gcck.segment4 expense_segment4,
gcck.segment5 expense_segment5,
null location_alias,
flk.concatenated_segments location,
flk.segment1 location_segment1,
flk.segment2 location_segment2,
flk.segment3 location_segment3,
flk.segment4 location_segment4,
flk.segment5 location_segment5,
flk.segment6 location_segment6,
flk.segment7 location_segment7,
papf.full_name employee_name,
papf.employee_number,
fav.attribute_category_code attribute_category,
fav.attribute1,
fav.attribute2,
fav.attribute3,
fav.attribute4,
fav.attribute5,
fav.attribute6,
fav.attribute7,
fav.attribute8,
fav.attribute9,
fav.attribute10,
fav.attribute11,
fav.attribute12,
fav.attribute13,
fav.attribute14,
fav.attribute15,
null date_retired,
null cost_retired,
null units_retired,
null proceeds_of_sale,
null cost_of_removal,
null retirement_type,
null retire_prorate_conv,
null sold_to,
null reference_num,
null trade_in_asset_number,
null transaction_name,
null retire_status
from
fa_additions_vl fav,
fa_books fb,
fa_transaction_headers fth,
fa_book_controls fbc,
gl_ledgers gl,
fa_categories_b_kfv fcbk,
fa_category_books fcb,
fa_deprn_summary fds,
fa_distribution_history fdh,
fa_locations_kfv flk,
gl_code_combinations_kfv gcck,
fa_asset_keywords_kfv fakk,
fa_add_warranties faw,
fa_warranties fw,
fa_leases fl,
fa_additions_b fab_p,
fa_additions_b fab_g,
per_all_people_f papf
where
1=1 and
:p_upload_mode like '%' || xxen_upload.action_update and
nvl(:p_create_empty_file,'N')<>'Y' and
fav.asset_id=fb.asset_id and
fb.date_ineffective is null and
(nvl(:p_include_retired_assets,'N')='Y' or fb.period_counter_fully_retired is null) and
fb.transaction_header_id_in=fth.transaction_header_id and
fb.book_type_code=fbc.book_type_code and
fbc.set_of_books_id=gl.ledger_id and
fav.asset_category_id=fcbk.category_id and
fcbk.category_id=fcb.category_id and
fb.book_type_code=fcb.book_type_code and
fav.asset_id=fds.asset_id and
fb.book_type_code=fds.book_type_code and
fds.period_counter=(select max(fds2.period_counter) from fa_deprn_summary fds2 where fds.asset_id=fds2.asset_id and fds.book_type_code=fds2.book_type_code) and
fav.asset_id=fdh.asset_id and
fb.book_type_code=fdh.book_type_code and
(fdh.date_ineffective is null or fb.period_counter_fully_retired is not null and fdh.date_ineffective=(select max(fdh2.date_ineffective) from fa_distribution_history fdh2 where fdh.asset_id=fdh2.asset_id and fdh.book_type_code=fdh2.book_type_code)) and
fdh.location_id=flk.location_id and
fdh.code_combination_id=gcck.code_combination_id and
fav.asset_key_ccid=fakk.code_combination_id(+) and
fav.asset_id=faw.asset_id(+) and
faw.warranty_id=fw.warranty_id(+) and
fav.lease_id=fl.lease_id(+) and
fav.parent_asset_id=fab_p.asset_id(+) and
fb.group_asset_id=fab_g.asset_id(+) and
fdh.assigned_to=papf.person_id(+) and
papf.effective_start_date(+)<=trunc(sysdate) and
papf.effective_end_date(+)>=trunc(sysdate)
union all
select
null action_,
null status_,
null message_,
null modified_columns_,
null request_id_,
'Retirement' record_type,
fav.asset_number,
fav.description,
fav.tag_number,
fcbk.concatenated_segments category,
fav.serial_number,
fakk.concatenated_segments asset_key,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='ASSET TYPE' and fl0.lookup_code=fav.asset_type) asset_type,
fav.current_units units,
fab_p.asset_number parent_asset,
fav.manufacturer_name manufacturer,
fav.model_number model,
null warranty_number,
fl.lease_number,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='YESNO' and fl0.lookup_code=fav.in_use_flag) in_use,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='YESNO' and fl0.lookup_code=fav.inventorial) in_physical_inventory,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='PROPERTY TYPE' and fl0.lookup_code=fav.property_type_code) property_type,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='1245/1250 PROPERTY' and fl0.lookup_code=fav.property_1245_1250_code) property_class,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='OWNLEASE' and fl0.lookup_code=fav.owned_leased) ownership,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='NEWUSE' and fl0.lookup_code=fav.new_used) bought,
fav.commitment,
fav.investment_law,
fb.book_type_code book,
fb.cost,
fb.original_cost,
case when (select fdp.fiscal_year from fa_deprn_periods fdp where fds.book_type_code=fdp.book_type_code and fds.period_counter=fdp.period_counter)=fbc.current_fiscal_year then fds.ytd_deprn else 0 end ytd_depreciation,
fds.deprn_reserve depreciation_reserve,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='SALVAGE_DEPRN_LIMIT_TYPE' and fl0.lookup_code=decode(fb.salvage_type,'AMT','AMOUNT','PCT','PERCENT',fb.salvage_type)) salvage_value_type,
fb.percent_salvage_value,
fb.salvage_value,
fb.reval_ceiling revaluation_ceiling,
fb.reval_amortization_basis revaluation_amortization_basis,
fb.recoverable_cost,
(fb.original_cost-nvl(fds.deprn_reserve,0)) net_book_value,
fb.deprn_method_code depreciation_method,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='YESNO' and fl0.lookup_code=fb.depreciate_flag) depreciate,
floor(fb.life_in_months/12) life_years,
mod(fb.life_in_months,12) life_months,
fb.date_placed_in_service,
fb.prorate_convention_code prorate_convention,
null amortization_start_date,
fb.bonus_rule,
(select fl0.meaning from fa_lookups fl0 where fl0.lookup_type='SALVAGE_DEPRN_LIMIT_TYPE' and fl0.lookup_code=decode(fb.deprn_limit_type,'AMT','AMOUNT','PCT','PERCENT',fb.deprn_limit_type)) depreciation_limit_type,
fb.allowed_deprn_limit_amount depreciation_limit_amount,
fb.allowed_deprn_limit depreciation_limit_pct,
fab_g.asset_number group_asset,
null expense_account_alias,
gcck.concatenated_segments expense_account,
gcck.segment1 expense_segment1,
gcck.segment2 expense_segment2,
gcck.segment3 expense_segment3,
gcck.segment4 expense_segment4,
gcck.segment5 expense_segment5,
null location_alias,
flk.concatenated_segments location,
flk.segment1 location_segment1,
flk.segment2 location_segment2,
flk.segment3 location_segment3,
flk.segment4 location_segment4,
flk.segment5 location_segment5,
flk.segment6 location_segment6,
flk.segment7 location_segment7,
null employee_name,
null employee_number,
fav.attribute_category_code attribute_category,
fav.attribute1,
fav.attribute2,
fav.attribute3,
fav.attribute4,
fav.attribute5,
fav.attribute6,
fav.attribute7,
fav.attribute8,
fav.attribute9,
fav.attribute10,
fav.attribute11,
fav.attribute12,
fav.attribute13,
fav.attribute14,
fav.attribute15,
fr.date_retired,
fr.cost_retired,
fr.units units_retired,
fr.proceeds_of_sale,
fr.cost_of_removal,
fr.retirement_type_code retirement_type,
fr.retirement_prorate_convention retire_prorate_conv,
fr.sold_to,
fr.reference_num,
(select fab2.asset_number from fa_additions_b fab2 where fab2.asset_id=fr.trade_in_asset_id) trade_in_asset_number,
fth.transaction_name,
fr.status retire_status
from
fa_additions_vl fav,
fa_retirements fr,
fa_books fb,
fa_transaction_headers fth,
fa_book_controls fbc,
fa_categories_b_kfv fcbk,
fa_category_books fcb,
fa_deprn_summary fds,
fa_distribution_history fdh,
fa_locations_kfv flk,
gl_code_combinations_kfv gcck,
fa_asset_keywords_kfv fakk,
fa_leases fl,
fa_additions_b fab_p,
fa_additions_b fab_g
where
1=1 and
:p_upload_mode like '%' || xxen_upload.action_update and
nvl(:p_create_empty_file,'N')<>'Y' and
fav.asset_id=fr.asset_id and
fr.book_type_code=fb.book_type_code and
fb.transaction_header_id_out=fr.transaction_header_id_in and
fth.transaction_header_id=fr.transaction_header_id_in and
fav.asset_id=fb.asset_id and
fb.book_type_code=fbc.book_type_code and
fb.book_type_code=fcb.book_type_code and
fav.asset_category_id=fcbk.category_id and
fcbk.category_id=fcb.category_id and
fds.asset_id=fav.asset_id and
fds.book_type_code=fb.book_type_code and
fds.period_counter=(select max(fds2.period_counter) from fa_deprn_summary fds2 where fds.asset_id=fds2.asset_id and fds.book_type_code=fds2.book_type_code) and
fav.asset_id=fdh.asset_id and
fdh.book_type_code=fb.book_type_code and
fdh.date_effective<=fth.date_effective and
nvl(fdh.date_ineffective,fth.date_effective+1)>=fth.date_effective and
fdh.location_id=flk.location_id and
fdh.code_combination_id=gcck.code_combination_id and
fav.asset_key_ccid=fakk.code_combination_id(+) and
fav.lease_id=fl.lease_id(+) and
fav.parent_asset_id=fab_p.asset_id(+) and
fb.group_asset_id=fab_g.asset_id(+)
Parameter NameSQL textValidation
Upload Mode
 
LOV
Book
fb.book_type_code=:book_type_code
LOV Oracle
Asset Number
fav.asset_number=:asset_number
LOV
Category
fcbk.concatenated_segments=:p_category
LOV
From Category
fcbk.concatenated_segments>=:p_from_category
LOV
To Category
fcbk.concatenated_segments<=:p_to_category
LOV
Asset Type
fav.asset_type=:p_asset_type
LOV
Net Book Value Greater Than
(fb.original_cost-nvl(fds.deprn_reserve,0))>=:net_book_value_from
Number
Net Book Value Less Than
(fb.original_cost-nvl(fds.deprn_reserve,0))<=:net_book_value_to
Number
Include Retired Assets
 
LOV