This blog post is a part of series with special consideration for high-level data migrations to Oracle Cloud ERP.

Previously, we shared a blog post Oracle Cloud ERP Data Migration Recommendations and Best Practices focusing on the data migration across the Cloud ERP. The blog post and an associated whitepaper provided guidance on the approach to convert master and transactional data for business objects in Oracle Cloud Applications, across business functions in Financials, Procurement, Project Management, and related HCM business objects (Employees, Locations). It provided an overview of the methods and techniques to convert the intended business objects across the various Cloud ERP products. 

In this post, we will discuss additional considerations for your high-volume data migrations, focusing on Fixed Assets. There are multiple use cases and related configurations that contribute to the shape, scope, and performance of transaction imports. The considerations discussed in this post are intended to be generic and do not relate to a specific organization or industry. 

Use the Fixed Asset Mass Additions Import process to upload assets into Oracle Assets. Review the Mass Additions FBDI template for instructions on how to prepare the asset data file.

Generate CSV files instead of using the FBDI Excel template. The CSV files do not have a row limit like MS Excel does. Instead of using a single large file for the conversion, use multiple smaller files. This will reduce the time for the prepare job in Mass Additions. For example, for 2 million assets, divide your conversion into four files with 500,000 or less for each file.

Convert assets at a different timeframe than other high-volume data conversions like GL balances, AR Transactions, etc.

Asset Migration Parallelization

Use parallelization in asset conversion programs as it increases the overall throughput of these mass programs. The child jobs spawned by parallelization may quickly use up all available jobs. If you have other processes running, simply setting a high number of child workers/threads will cause requests to be submitted, but they will still need to wait for the job slots to free up if they are all being used. Fusion Fixed Assets offers two mechanisms for parallelization:

Profile-based Parallelization 

Available for posting jobs (mass additions, adjustments, transfers, retirements), Mass Copy, Impairments, and Depreciation.

  • Set up the Parallel Request Number profile option: FA_NUM_PARALLEL_REQUEST. 
  • Set to a fixed integer between 1 to 20 based upon the number of child workers you want to spawn.

This mechanism works well if you have an even distribution of assets and transactions as it divides assets evenly among the child workers. It is not efficient if a small subset of assets has many lines. It is also not efficient if you have fewer group assets with many member assets. All member assets belonging to the same group will be assigned to the same child worker. Therefore, the allocation of assets to child workers may not be even, and some child workers may finish much earlier than others.

FUN-based Parallelization 

Available for posting jobs and Mass Copy. Not available for Impairments or Depreciation. Setup steps are as follows:

  • Set Parallel Request Number profile option FA_NUM_PARALLEL_REQUEST to NULL (i.e., not set)
  • For Post Mass Additions, Adjustments, Transfers, and Retirements, the lookup type FA_ADVANCED_DEV_CODE should be set to FA_BUG30793709_NEW_CODE
  • For Mass Copy, the lookup type of FA_ADVANCED_DEV_CODE should be set to FA_BUG32521629_NEW_CODE

This mechanism offers better load balancing intelligence than profile-based parallelization. Child workers are only kicked off when there is work for them to do. Work is allocated as requested and not in a fixed assignment up front. Heavy skew impacting the same assets and group assets will still need to go to the same worker. However, this mechanism is still better at ensuring that total work among all child workers is divided more evenly given the skew.

Other Considerations

Make sure that you include the Depreciation Reserve and Year-to-Date Depreciation for your converted assets. Otherwise, the system will attempt to calculate these values, which might cause rounding differences and increase the total runtime.

If you are including asset numbers in your conversion, make sure invalid asset numbers are not included.

If you are using Group Assets functionality, do not set the set the group asset number at the category level. It can be set after the conversion. Instead, make sure you include the group asset number for each of your member assets during conversion. This will reduce the overall time the system takes to upload these group and member assets.

If you want to maintain drilldown to Projects for historical data, make sure you load Projects data first, and provide the correct project number in Assets during your conversion load. Otherwise, you will lose your Projects-to-Assets link after the conversion.

You will lose your transaction history and the detailed monthly depreciation history after the conversion. You will only see the YTD and LTD depreciation that you enter for the assets during conversion.

Contention and Concurrency in Assets

Most key jobs that impact transactional or depreciation data implement book level locking to prevent contention for the same assets across multiple requests. This includes the Posting Jobs, Mass Copy, and Depreciation, but does not include reports. 

In general, you are free to run jobs concurrently for different books. For example, you can run the same Post Mass Additions job for multiple books at the same time. 

However, don’t run the same job more than once for the same book at the same time. Nor can you run different jobs for the same book at the same time. Again, this limitation applies to transactional jobs and depreciation but does not include reports.

How to Migrate Data to a Tax Book

Load assets into a corporate book. 

  • Run the Initial Mass Copy job to copy assets from corporate book to tax book. 
  • Use ADFdi or FBDI spreadsheet to update the information for converted assets.

Alternatively, load assets directly into a tax book with the desired cost, accumulated depreciation, life and depreciation rules using FBDI Spreadsheet. 

You don’t need to worry about dependencies between corporate and tax books. You can run Post Mass Additions to load your corporate book. Once your assets are created immediately proceed to run the Mass Copy for your tax books. At the same time, you can process Adjustments, Transfers, Retirements, and other transactions back in the corporate book (along with Depreciation) while Mass Copy is still processing the tax books.

Asset Migration Reconciliation

Ensure that you reverse the Addition GL batches initially created by the conversion to avoid double accounting of initial GL balances. Do not use the Recent Additions tab in Asset Inquiry in the conversion period. Otherwise, it will attempt to fetch all records converted in that period. Instead use the Cost Summary report to reconcile asset cost balances.

For a better report performance during reconciliation, do not run detail reports such as Asset Additions, Cost Detail, Reserve Detail, or Asset Register. These reports will generate too many pages of the assets you converted in the period. Instead run the Cost Summary and Reserve Summary reports for reconciliation of the conversion.
Follow the Oracle recommendations to set the timeout for reports, and if the size is large, set the output format to CSV.

To improve performance of the Prepare Source Lines UI page after the data conversion:

  • Delete posted mass additions. Run the Delete Mass Additions process after running Post Mass Additions to eliminate the high volume of posted assets.
  • Do not query all assets in the book. Filter search using more attributes.

Conclusion 

Carefully plan and test your fixed asset data migrations. If you are converting high data volumes, we recommend that you review and follow our recommendations above.