Share via


Dynamics 365 CE upgrade from Version 8 to 9

Prerequisites

Make sure that you have at least 2 additional sandbox environment to begin with

/en-us/dynamics365/customer-engagement/admin/add-instance-subscription

  1. 1) Copy of Development for Bug Fixing\ Changes.
  2. 2) Copy of Production for Testing.

Check latest version

Schedule the upgrade for the above environments to the latest version from Dynamics 365 Administration Center.

/en-us/dynamics365/customer-engagement/admin/manage-updates#how-will-i-know-my-organization-is-ready-to-update

  • The upgraded Development environment will be used for bug fixing and testing.
  • The upgraded Production environment will be used for Testing.

Use below tools from XrmToolBox for smooth upgrade: 

  •  Dynamics 365 V9 JavaScript Validator
  • Script Finder

In console applications, while trying to connect to D365 V9 organization, before creating organization service proxy use TLS 1.2 as security protocol by using the below line of code: Z

In JS and HTML web resources, make the below mentioned changes:

  1. Tick "Pass Execution Context as first parameter" for all the methods at Form Properties
  2. Xrm.Page.getControl() should be replaced by executionContext.getFormContext().getControl()
  3.  alertDialog() should be replaced by Xrm.Navigation.openAlertDialog()
  4.  Add executionContext as parameter to the function if working with custom filtering of lookup and mention only the name of the method while calling addPreSearch.
  5. Xrm.Page.context needs to be replaced by Xrm.Utility.getGlobalContext()
  6. Xrm.Utility.alertDialog() needs to be replaced by Xrm.Navigation.openAlertDialog()
  7.  Xrm.Utility.confirmDialog() needs to be replaced by Xrm.Navigation.openConfirmDialog()

 If there is any custom JS code for Ribbon button, then using Ribbon Workbench pass a parameter of type "CRM Parameter" with value "PrimaryControl" to the command or enable rule and in JS method pass executionContext as parameter.

SOAP request needs to be converted to corresponding Web API request. GrantAccessRequest message was not available in D365 V8. However it's available in D365 V9. Here's an example of using GrantAccessRequest in D365 V9: https://ajitpatra.com/2018/10/28/d365-v9upgrade-sharing-record-using-web-api-and-custom-action/ 

 Xrm.Utility.openEntityForm() needs to be replaced by Xrm.Navigation.openForm(). 

Xrm.Utility.openWebResource() needs to be replaced by Xrm.Navigation.openWebResource(). 

Custom JS code for Enable Rule of Ribbon button gets executed twice. Please have a null check for executionContext passed to avoid script error pop up. 

On Contact entity form, top right corner section might get placed towards the bottom of the screen in Conflicts section as Icebreakers section will be placed there. To rearrange the sections, we need to open Form Editor and make necessary rearrangement.

Dialogs need to be replaced by Canvas App.

On October 1, 2020, the legacy web client will no longer be available. Organizations should make the transition to the Unified Interface as soon as possible to take advantage of Microsoft’s ongoing investments in reliability, performance, and functionality.

Standard SLA are being deprecated so replace them with the Enhanced. p>

Replace Mail Merge with Document Template.

  • Replace relationship roles with connection roles.