We use cookies to improve your experience on our website.

  • Home
  • Blog
  • Preparing to Migrate Dynamics CRM from On-Premise to Online – 6 things you need to know

Preparing to Migrate Dynamics CRM from On-Premise to Online – 6 things you need to know

Dynamics CRM Online is becoming an attractive option for many organizations.  There’s no need to manage servers, networks, databases or backups.  Simply pay your monthly licenses and everything just works.  Another advantage of Dynamics 365 online is early access to the latest features which go into the online environment before they are released in an on-premise update.

Part of the price for the rock-solid stability and ease of deployment, though, is a more restrictive environment.  These restrictions were put in place by Microsoft to ensure the security and performance of the underlying platform for all users.

Before migrating to Dynamics CRM 365 Online, here are the major things you need to check:

  1. Plugins – Full-Trust plugins are forbidden. 
    1. The sandbox environment has several restrictions but the most common plugin issues are:
      1. They have no access to the underlying hardware, O/S or directory services.
      2. They are limited to 300 seconds of execution time per run.  (If your plugins are running this long, you’re probably doing something wrong anyway.)
      3. Network operations are limited to HTTP/HTTPS.
      4. They cannot access external DLLs.  If you reference a DLL in your plugin project, you will need to ILMerge your plugin with the referenced DLL before deploying or updating the plugin.
    2. Debugging plugins is more difficult.  On-Premises, you can install the Visual Studio Remote Debugging tools then attach to the server process.  Online, you must install the Plugin Profiler, then start profiling your plugin.  You can then run the plugin to trigger an exception, capture the exception details, feed the exception details into the profiler and finally attach Visual Studio to the Plugin Registration Tool and step through the plugin.  Once you’ve been through this process a few times it gets easier, but it is still time-consuming and rather tedious.
  2. SSRS-Based Reports
    1. You have no access to SQL.  All data retrieval must be done via FetchXML.  Almost any data you can retrieve from CRM via SQL, can also be retrieved via FetchXML but the syntax is different and can present quite a learning curve.  To get started, you can create an Advanced Find query and download the FetchXML.  You can also use the FetchXML Builder in the XrmToolBox to build, extend and test your FetchXML.
    2. Reports, like plugins, are limited to 300 seconds of execution.  Unlike plugins, a complex report on a heavily used system could realistically run for over 300 seconds.  You may need to break complex reports up into smaller reports or spend some time optimizing your FetchXML.
  3. Integrations
    1. To/From Dynamics 365
      1. Since you have no access to the underlying SQL database, you will need to either use the web API or the Import Data Wizard & Export to Excel functionality.
    2. To/From External Systems.  Take the example of quoting and pulling real-time pricing and availability from an ERP system.
      1. Plugins can only communicate externally via HTTP/HTTPS.  If you are using FTP, SCP, even writing a local file via a plugin, it won’t work online.
      2. You can create custom SDK messages with input and output parameters and register your plugin against these messages.  You can then fire the plugin by calling your new SDK message via JavaScript and your plugin will run.  Your plugin can call your Internet-facing Web Service to retrieve data and return the data in JSON format to your client-side code.
  4. Solution Export 
    1. Without getting into the correctness of having a huge CRM Solution, your solution must be small enough to export within 300 seconds or the export will fail.  As a workaround, you can create a console application and instantiate your own OrganziationServiceProxy.  You can then set a longer timeout on this proxy and export the solution programmatically.
  5. Miscellaneous unsupported customizations:
    1. CRM 4.0 Plugins and custom workflow activities are not supported.
    2. The CRM 4.0/2007 Service Endpoint is not supported.
    3. Any changes made to files in the wwwroot directories are not supported.
    4. Any changes made to the SQL database are not supported.
  6. Customization solutions must be exported from at least version 2016 before they can be installed on Dynamics 365.  If you are on 2011, 2013 or 2015, you must install your solution into the latest update of the next major version, then export again until you get to a 2016 export.  Each step of the update will validate your customizations and warn (or fail depending on severity) of any unsupported customizations.  The supported upgrade path is:
    1. 2011 -> 2011 UR18
    2. 2011 UR18 -> 2013 UR5
    3. 2013 UR5 -> 2015
    4. 2015 -> 2016 SP1
    5. 2016 SP1 -> 365
Lance Russell

VP, System Design/Architecture

Looking for spaghetti code that is nearly impossible to maintain and upgrade?  Then stay away from Lance.  Far away.   Lance’s highly-logical mind can only create organized, well-written applications and integrations that are a breeze to maintain.   There is no business application coding problem that Lance cannot figure out.  One of our hi-profile, global clients tried to make him fail.  He did not and they came back with the quote “Lance has to be one of the best SharePoint consultants in the world”.   Those are definitely true words.   His expertise in all areas of software development, including Dynamics CRM and ERP, Integrations and web sites is top-notch.  And he is funny too.  You’ll appreciate his humorous approach when you see everyone gelling, working together happily, and your project humming along smoothly.

Recent Projects

In a recent project, Lance worked with a global manufacturer of gaming equipment to restructure their entire technology platform. He created Item Master, a SharePoint web-based application used to manage the approval process of changing inventory items, reducing approvals from 2+ weeks to less than 2 days. He also created a product configurator, which automated the time consuming and cumbersome pick/pack/ship process of their orders which were typically customized and highly complicated. To top it all off, he tied it all together with a much needed compliance component that checked orders against their jurisdiction’s regulations.

the most surprising part of working with them was how well they worked with our team. Their calm and professional demeanour throughout the project put people at ease and everyone clicked from day one. The relationship was truly unique, in that you just don’t see that level of trust, bonding and collaboration.”

1000 Characters left