As there are customers migrating from on prem to online version of Dynamics 365, its important to understand the various steps involved in migrating from Dynamics CRM 2016 On Prem to Dynamics 365 Online.
1. Version compatibility Check
Any solution exported from a newer version of Microsoft Dynamics 365 cannot be imported into an older version of Microsoft Dynamics 365. This includes major and minor versions. Solutions exported from an earlier version of Dynamics 365 can be imported into later versions as shown in the following chart.
2. Upgrade On-Premise Server version to make it compatible for export-> import to cloud
Upgrade the on-premise server to the compatible version to export the solution to the cloud version.
3. Solution – Compatibility Changes
This is where the development changes might be required to ensure that the different custom components work in the target environment.
Below tools will help to change the existing Jscript code to be compatible with Dynamics 365 online
b) Plugins & Workflows (Custom)
- Plugins and custom workflow assemblies should be updated to run in Sandbox mode as solution import will fail if there is any plugin running in to non-isolation mode.
- Plugin and custom workflow assemblies should refer the latest SDK assemblies. There may be obsolete requests in the plugins which needs to be corrected
- When changing to Sandbox mode, it reduces few privileges like local server access. This needs to be considered
- If there is any code that directly accesses the CRM database, it should be replaced to pull and push data using the SDK-provided API.
- Third party DLLs cannot be accessed while running the plugins/workflows in sandbox mode. One way to overcome this would be to use ILMerge tool to merge the 3rd party dll(s) code to the plugin code.
- There is a limitation of 200 workflows allowed in online version – this needs to be considered
- Convert the SQL based reports to use FetchXML
- To make best use of Power platform, its’ also an option to build reports in Power BI – https://docs.microsoft.com/en-us/previous-versions/dynamicscrm-2016/administering-dynamics-365/dn708055(v=crm.8)
e) On-Premise Batch Jobs [Optional]
As we move from on-premise to online, we do have option to update the existing batch jobs to connect to the online instance. But if we want to get rid of on-premise servers and move such jobs to online as well, then Azure WebJobs is the option. This is an optional change if we need to move the jobs to Azure platform.
f) Custom web services [Optional]
If there is any custom web service developed as an interface between Dynamics 365 On Prem and other enterprise applications, there is an option to move such web services to Azure cloud platform.
4. Solution Export
Settings àcustomizations and export the solution with all required components or create a new solution, add all the required solution components to it as unmanaged which will be imported to the new Dynamics 365 online environment.
5. Setup new Dynamics 365 environment and enable synch with existing AD
If you have a large organization that uses Active Directory to manage your users and groups, setting up Active Directory synchronization will allow you to manage all of your CRM Online users in a central location, avoiding the need to manage multiple user accounts and passwords. After you assign a CRM license to a user in the Office 365 portal, the user (and all associated details) will appear within the CRM application.
If you want to learn more about the difference ways to enable SSO with existing AD, please read below links.
Hybrid Authentication Options: https://docs.microsoft.com/en-us/azure/active-directory/hybrid/whatis-hybrid-identity
6. Import Solutions in to Dynamics 365
Import the solution(s) prepared to the new environment
7. Data migration
This step is to migrate the data to the new environment. There are different options to migrate the data which includes
- Make use of off the shelf tools like Scribe / Kingsway soft
- Make an inhouse migration tool – which is time consuming and can cause delay in the whole process
8. Post Deployment Checks
Deployment activities are done and its time for doing the post deployment checks and ensure that all functionalities do work as expected.