Navigating the shift: How to perform data upgrade from AX 2012 to D365

August 14, 2023

Ready to upgrade to Dynamics 365 Finance and Operations and embrace operational excellence? This stage of the upgrade is exciting.  Upgrading your outdated ERP to Dynamics 365 Finance and Operations is a pivotal step to adapt and innovate. When it comes to transitioning from AX 2012 to Dynamics 365 the task might seem daunting.  

This blog will be your compass through the intricate process of data migration and system upgrade. Learn how to upgrade from AX 2012 to D365 through carefully curated steps.

Before you get started

The output of this upgrade project will provide you with the first upgraded dataset from Microsoft Dynamics AX 2012 to the latest finance and operations development environment.

It is advised to run this process in a development environment first before running it in a shared sandbox. This strategy is used for two reasons:

  • Developers can use the local data to create and test the custom data upgrading processes.
  • It contributes to a reduction in the overall time required for data upgrade iterations. In a development environment, an issue can be debugged right away, the code can be modified, and the upgrade can be performed in a matter of minutes. This level of agility is not possible in larger sandboxes. Debugging and fixing problems, updating the code, deploying the revised code, and rerunning the upgrade will all take at least several hours in those setups.

It is recommended to use a Dynamics AX performance analyzer and address the issues before running the data upgrade to ensure a faster and easier upgrade.  

How to upgrade AX 2012 to D365: End-to-end upgrade process

The process of data upgrade in the development environments starts with ensuring that you have completed the pre-upgrade checklist within your Dynamics AX 2012 system. Once you are done with that, the following steps outline the entire upgrade process:

Step 1: Back up your AX 2012 database

Use the regular Microsoft SQL Server procedure to create a BAK file to backup your AX 2012 database. The backup file will be smaller and take less time to upload and download from Microsoft Azure Storage if compression is used when creating the backup.

Step 2: Upload the backup to Azure Storage

You must move the 2012 database backup to your developer environment, whether it is hosted locally or in Azure as a virtual machine (VM). If the virtual network supports it, you might be able to transfer the file using a local VM directly. It is advised to use your own secure file transfer service, or SFTP, to send your backup to Azure Storage for an Azure-hosted VM. For this, you would need to supply your own Azure storage account. You can use Azcopy from the command line or Microsoft Azure storage explorer for a graphical user interface to assist you in moving data between Azure storage.  

Use one of these tools to upload your on-premises backup to Azure storage first, then download it to your development environment.

Step 3: Download and restore the backup to the customer-managed development environment

Do not replace the current AXDB database while restoring the backup to the new development environment. Place the AX 2012 database with the original databases when you restore. In order to increase performance and timing during the upgrading process, premium storage might be used to deploy the cloud-hosted system.

You can switch the SQL Server service account to the BuiltIn Admin user to hasten database restoration. In Microsoft Dynamics Lifecycle Services (LCS), the environment page contains information regarding that user account. Then, instant file initialization can be used during the restore procedure. See Database Instant File Initialization for further details.

After the database is restored, stop the following services:

  • Management Reporter 2012 Process service
  • Microsoft Dynamics 365 Unified Operations: Batch Management service
  • Microsoft Dynamics 365 Unified Operations: Data Import Export Framework Service
  • Microsoft Dynamics Lifecycle Services Diagnostic Service
  • World wide web publishing service

Now rename the original AXDB database as “AXDB_orig.” You might find this database useful as a reference later, at the time of developing the code.

Once you are done, rename this newly restored AX 2012 database as “AXDB.”

Step 4: Run the data upgrade deployable package

Download the most recent binary updates from the LCS Shared asset library to obtain the most recent data upgrade deployable package for a target environment running the most recent update.

Follow these steps:

  1. Sign into your LCS account  
  2. Choose “Shared asset library.
  3. From the options, choose “Select asset type” and then “Software deployable package.”
  4. The upgrade packages start with the name AX2012DataUpgrade. From the list, choose the package that corresponds with the Dynamics 365 version you need.
  5. Once you have found the right data upgrade package, download it and save it to a folder named “C:\Temp” in the cloud-hosted environment.  
  6. Right-click or select and hold download and choose “properties.”  
  7. Select the unblock checkbox, hit the OK button, and extract the file
  8. Open a PowerShell Prompt as an admin and change to the deployable package folder  
  9. Make sure the services that were stopped in the Download and restore the backup to the customer-managed development environment are stopped. In case they are still running in the background, you might face locking issues on the database.  
  10. Use the following script for running the deployable package. You can make edits in the runbook ID and the name of the file in the script.  

.\AXUpdateInstaller.exe generate -runbookid=”MajorVersionDataUpgrade-runbook” -topologyfile=”DefaultTopologyData.xml” -servicemodelfile=”DefaultServiceModelData.xml” -runbookfile=”MajorVersionDataUpgrade-runbook.xml”

.\AXUpdateInstaller.exe import -runbookfile=”MajorVersionDataUpgrade-runbook.xml”

.\AXUpdateInstaller.exe execute -runbookid=”MajorVersionDataUpgrade-runbook”

Step 5: Monitor the data upgrade

The deployable package just has a single runbook step which will process the entire upgrade. The following sub-steps will be running in the background:

  • PreReqs – This step patches the SQL dictionary, applies SQL sequences instead of system sequences, modifies user info and system variables, does database synchronization of system tables, and does additive synchronization of new tables.
  • PreSync – This step invokes the first set of upgrade jobs via batch processing, mostly to disable unique indexes.
  • DBSync – This step does the first full synchronization. Unique indexes that were disabled during the PreSync step aren’t created during this step.
  • PostSync – This step runs the main data conversion jobs via batch processing.
  • FinalDBSync – This step does the final database synchronization that synchronizes all remaining objects in the database.

Troubleshooting data upgrade errors

To make sure the data upgrade process is flawless, run the following troubleshooting steps  

1) Rerun the runbook after a failure

In case the data upgrade runbook fails, retry the last step of the upgrade by using “rerunstep.” Here is an example:

.\AXUpdateInstaller.exe execute -runbookid=”MajorVersionDataUpgrade-runbook” -rerunstep=3

2) Review the runbook logs

Under the deployable package, you will find the logs in the subfolder. Look into the folder to search for logs for the runbook step and review the errors.

3) View details about a PreSync or PostSync upgrade job

Run the Upgrade PreSync and PostSync scripts in X++ by using batch process. Some classes that you can view in Application Explorer’s Visual Studio are prefixed with ReleaseUpdate. In case an upgrade script fails during the runbook process, open SQL Server Management Studio to learn more about the error and run this code query:


Summing up

As we conclude this journey through the process of upgrading from AX 2012 to Dynamics 365, it’s evident that change is not merely an event but a continuum. The transformation from one system to another requires careful planning, strategic execution, and a commitment to evolving with technology.  

As you venture into this upgrade, working with a Microsoft partner is recommended. Our team at Confiz has a wealth of experience in upgrading from AX to Dynamics 365. If you’re ready to take the next step and migrate from AX to Dynamics 365, our experts are here to assist you every step of the way. Reach out to us at Embrace the possibilities of Dynamics 365 and embark on a journey of enhanced efficiency, streamlined processes, and a competitive edge in the dynamic digital landscape. Your success is our priority.