Monday, August 22, 2011

How to change/rename an existing Item Number

Depending on the business that you run, you will create a bunch of items (or some other main value) that you will need to rename.  In this example, I am talking about renaming a unique record key value for the item master (InventTablee.ItemId), but you could apply this to any ‘unique record key’ field table in AX.  For those that are not fully technically inclined, a ‘unique record key’ for a table would be a field that unique identifies that record in a table.  Using the example of the item master in this blog post, the key field would be the item id as you could not have two records with the item id ‘001234’ for example; it is a unique identifier to that specific record...

Anyways, all nerding out aside, we’ll proceed talking about the scenario where we need to change the value for an item id and have this change be reflected across the entire system.  While it may seem that ItemId’s can be changed in the item master at any time without repercussions, this is not the case.  The trick is that the item number also needs to be changed in all other records that reference this ItemId (Item Number) since it uniquely identifies this record.

Steps to changing the item number to have it reflect the changes in the rest of the existing transactions:

1.       Right click on the unique field (Item Number/InventTable.ItemId) and select the ‘Record Info’ option (Figure 1 below)

Figure 1 - Right Click on the Item Number field and select 'Record Info'

2.       Select the ‘Rename’ button (n Figure 2 below).

a.       VERY IMPORTANT NOTE: This could take A VERY LONG time to complete depending on how many transactions exist for that record.  I’ve had it last anywhere from 1 minute to 3 hours.  The 3 hours was for a client that had incredibly large volume.
Figure 2 - The 'Rename' button on this form will allow you to change the item number displayed in the item number field

It’s a fairly simple process to complete but very powerful and can take a long time.  The only reason I am writing this entry is that I was sharing beers with a seasoned AX consultant who did not know how to do this.  He did not work for our company but definitely pointed out to me how this feature is not really talked about in any specific point.  While it may seem obvious to the technical folk (or not), it may not be obvious to the functional peeps.

Just make sure to be VERY careful with this process.  I think its solid but I cannot vouch for it being 100% perfect.  I’ve never seen it faulter but PLEASE take the following precautions before doing this:

1.       Backup the PROD database

2.       Restore PROD to TEST/UAT/DEV (or whatever…)

3.       Execute the procedure on your target record

4.       Do extensive testing on that record Before and After this process (either BI reports or manual comparison)

5.       Compare the results and make sure all the target results are like you would expect

6.       Make the change in the PROD environment

7.       Validate the data in the PROD environment

8.       Sign off the change and party like its 1999 (pre-Y2K catastophies! [psych])