Jul 16, 2007

Data Migration Strategies in ERP

Read my White Paper in IT Tool Box
Along with optimum design of chart of account structure, effective and efficient migration of data is one of the cornerstones for the success or failure of an ERP implementation. Since a number of questions need to be answered and decisions need to be taken before loading the data into the ERP, significant amount of planning need to go into before the data is migrated into ERP.
However, in practice this do not happen to be the case. Since data migration is the last activity before go live of an ERP implementation, this very important activity is subject to acute time constraint. With the top management demanding the timely roll out of the ERP, planning for data migration becomes the premier casualty. This results in junk data going into the new ERP system thereby making the whole implementation suboptimal from day one.
The upshot is clogged database tables, reduction in disk space, performance issues, confused users who are entrusted to clean up junk data in the new system (without much familiarity with the product and the processes) leading to the GIGO phenomenon!. It is not long before the stakeholders lose faith in ERP.
Given this context, the article aims to provide a higher level view of the data migration strategy to be followed in an ERP implementation. The article illustrates some of the points using Oracle Applications as the ERP product owing to the author's familiarity with the product.
Data Migration Strategy
The data migration strategy consists of the following:
1. Identifying the data to be migrated
2. Determining the timing of data migration
3. Generating the data templates
4. Freezing the tools for data migration
5. Deciding on migration related setups.
6. Deciding on data archiving.

The data to be migratedThe data to be migrated to Oracle Applications consists of four groups of data. These data need to be entered in the given order since each of these groups are dependent on the data entered in the previous step. They are:

1. Configuration data (Set up data): Here the general principles and processes to be followed by the system are defined. This is a one time data entry and is predominantly entered manually. The key points to be considered while entering the setup data is the scalability requirement if additional countries are expected to link to the instance at a later point in time.
2. Sub Master Data: These are primarily the set of transaction related policies and rules followed in the organization. These include, among others, the payment terms, the delivery terms, the delivery methods etc. These data is normally a one time entry and predominantly entered manually.
3. Master data: The master data is a list of regularly updatable entities that the organization is expected to use in day to day transactions. These include, among others, supplier master, customer master, chart of account master (for each segment), banks master, currency master, region master, country master, location master, tax master etc. The principle feature of the master data is the extensibility of data. These are in the nature of transactional data and will need regular updates and maintenance. The mode of data entry will depend on the data volume. Predominantly, different tools are used to load the master data into the application.
Localization requirements form an important part of the master data. It has to be ensured that the templates being used to load master data collects the localization information relating to each master entity.
Since master data is subjected to regular updates, it is prudent to load the master data very close to the go live date.
4. Transaction Data: Completion of transaction data entry is normally called as ‘System Go Live’. The transaction data normally consists of the supplier balances, the customer balances, the trial balance, the assets master etc. Since the entry of open balances have financial implications, the above data entry is subject to a series of decisions. The decision include loading open balances versus loading both the open and closed transactions, the archiving requirement, whether to resolve the disputed transactions before or after data migration, whether to post the migrated balances to GL and finally the strategy for validation of data entered into the system. This is a one time data entry and is normally tool based data load.
Timing of data loadAs far as timing of data load is concerned each of the above data follows different time lines. Normally the set up data is completed and signed off before the conference room pilots are completed so that the UAT is conducted in an environment similar to the production environment. Since some of the setup data cannot be modified once it is entered (for example the Accounting Calendar), a lot of care need to be taken before entering the setup data in the system. It is a very good practice to follow a version controlled documentation for the setup data.

Since the sub masters are also one time data entry, these will follow the same process discussed for set up data mentioned above. However, since the sub masters are OU specific, separate data load process need to be used for each OU.

As discussed in the section on data, the master data are subject to continuous updates. Hence the strategy to be followed for master data consists of incremental load as the process moves from CRP1 through UAT. The primary objective of the incremental data entry is to test the completeness of the templates. This means that every load of the master data should be used to test the tools and the templates in addition to the data itself.

The transaction data can also follow the same data load process as the master data. Since the transaction data has accounting implications, it is suggested that every load of transaction data test the whole data load cycle including transferring to GL and validating the accounting entries.
Templates to be usedThese are sharable components that can be used for data migration of different countries into the regional instance. The template should be designed to handle three sets of data.

The first set of data is mandatory for the database. These include the primary key values like supplier id, customer id etc. These are unique values.

The second set of the data is required for the effective performance of the application in the organization context. These are organization specific data and could include values like payment terms, delivery terms etc. These are not mandatory for the application to function.

The third set of data is the country specific data. Since the country specific data could be different across countries, the template need to be suitably modified for each country.

As was the case with master data, it is best to freeze the template at the initial phase of the project and test its utility at different phases of the project. This will help in identifying missing data requirements long before the final go live date.
Tools to be usedFour different tools can be used to load data into the oracle database. We could use different tools for different types of data.

1. Desktop Integration: Data Loader can be used as tool which can be used to load data into the oracle tables. Optimally this tool is used in cases where only a single window is used to enter data in case of a manual entry. The tool is easy to use and is very flexible. Some of the data that can be loaded using this tool include chart of accounts, and some of the sub masters. The advantage of this tool is that the consultant do not need technical expertise to load data into the system.
2. SQL Loader: This tool picks data from a data file in a specific format (‘.csv’) and loads it into the staging table. From here the data can be moved to the base application tables using SQL Scripts.
3. Oracle Standard APIs: These are program interfaces provided by Oracle to load standard data into the base application tables.
4. Custom Built Interfaces: These need to be developed for non standard data that need to be loaded into the database
5. Custom Built Forms: The problem with all the methods described above relate to significant requirement for technical knowledge. It will be a good idea to spent effort in developing custom built forms to load data into the database. This is similar to the ‘Import Manager’ tool available in Peoplesoft. The effort spent on this will be well worth since this could act as a component which can be reused across implementations. The development of these forms is a separate project and is not covered within the scope of this document.

Each of these tools need to be evaluated from the perspective of speed, scope of errors and data volume.
Migration related setupsBased on the strategy for data migration, a few setups need to be created specifically related to data migration. These setups can be end dated after the completion of data migration.

1. Creation of new account codes: A few opening balance intake accounts need to be set up. These accounts get one side of the balance from the sub modules and get the balancing value from the GL trial balance. The accounts include Payables Open Intake Account, Receivables Open Intake account, Assets Open Intake Accounts etc. It should be noted that the creation of the account codes will depend on the migration strategy (specifically whether the transactions taken into the system are going to be posted to GL or not).
2. Setups in AR: Depending on the auto accounting setup in AR, you may need to create separate transaction types or standard memo lines for taking in receivables opening balances. This also depends on the standardization of auto accounting setup across countries in the regional instance.
Data ArchivingDecision on data archiving is dependent on various factors including the statutory requirements of various countries, reporting requirements and transactional information requirements. For statutory requirements some countries are expected to maintain up to 7 years of data. Also, the organization may want refer to some older data for internal auditing and comparison purposes and finally users may want to refer back to more recent transactions.

Based on each of the above, the archiving period will vary. While statutory reporting may require 7 years of data, comparison reporting may call for 4 to 5 years of data and transactional requirements will call for the last one year's data.

In data archiving, the organization could follow any of the following strategies. The issue of data archiving is applicable to the intake of transactional data discussed earlier.

1. Do not load any past and closed data into Oracle Applications. Import only opening balances:
For AR and AP, import only the current balances in the respective control accounts. For any partially completed transactions, import only the open balances. Close out as many transactions as possible by paying off AP invoices for example. By making the data compact, this method is easier to apply and is intuitive. The major advantage of this method is that the organization can do a data clean up exercise before loading the data to Oracle. However the drawback of the above approach is as follows.
a. Historical transactions will not be available in oracle for statutory requirements: Some countries require 7 years of archived data. This information will not be available in Oracle if the above method is followed. The way to handle this is to either have an archive instance with the historic data or to back up the historic data in an archive databases and have some of the key reports prepared in discoverer pointing to the database.
b.Transactional linkages will not be available: Some of the current transactions may require the user to track back to some older transactions. In the above approach, the past transactional information will not be available
2. Load only the past data corresponding to the current transactions:
In this method, load all the transactional data relating to current open balances. For instance, if you have a partially paid invoice, enter the original invoice and the partial payments into Oracle. Most of the time, this takes care of user’s requirements discussed above.
3. Load all the data from the legacy system to Oracle:
There is no data cleaning in this method. This is more like a data dump from legacy system to Oracle. In addition to increasing the disk requirements, this leads to duplication of data as well as performance issues.

For options 1 and 2, the organization will have to consider an instance strategy for archive instance as a part of the detailed instance strategy. The instance strategy should involve the infrastructure as well as the MIS reporting linkages in addition to the archived data.

Data migration is the most important activity determining the success of an ERP implementation. An accurately migrated data is a demonstration to the stakeholders that the ERP system is a reflection of their current organization. This increases their confidence in the system and in turn is a key factor in the ultimate success of ERP implementation. In many instances, this important activity do not get the kind of serious attention that it deserves.
However by following a well laid out data migration strategy, organizations can ensure an effective and efficient data migration.


Priti said...

Great and informative article. Any advice on best practice around migration of historic/closed transactions part way through a financial year would be very helpful. We are migrating from 11.0.3 to 11.5.10. Thanks in advance Priti

Ramaswamy VK said...

I have added one more section on 'Data Archiving' strategy which attempts to partially answer your question. For a more detailed explanation, please wait for my article on 'Opening Balance Intake in Oracle'. I will try to update teh same soon.
In the mean time pl. go through the other articles in this blog and let me know your views. Also please inform your friends of this blog. This can grow only through user participation.

Saravanan said...

Hi Ram,

Thanks for giving such an golden tips in Oracle Apps.

Basically, I am Oracle Apps Distribution Functional consultant. I would like to know how OTC and P2P affect accounting. I want that full flow with screeshot.

Even, I have gone through you tips in the blog.

If you explain me with screenshot, it will be more help full for us.

My email id is saroapps@hotmail.com


R. Saravanan

erp solution said...

Hello.. Thanks for given helpful tips.. Its most important activity determining the success of an ERP implementation. Effectively migrated data is a demonstration to the stakeholders that the ERP system is an accurate reflection of their current organization.