Sunday 15 April 2018

Upgrade Adxstudio to Dynamics 365 Portal















As we all know that Microsoft has announced in September 2017, Product support for legacy Adxstudio Portals v7 will end on August 1, 2018.


Now, many existing Adxstudio customers are looking to see what their upgrade options are.


Before understanding about various techniques in order to Upgrade Adxstudio to Dynamics 365 Portal. Let's discuss first, What is the key difference between Adxstudio and CRM Portal.


Adxstudio Portals


Adxstudio Portals is the portal product which was offered exclusively by Adxstudio, Inc., until it was

acquired by Microsoft in September 2015. This product is often referred to as v7 or legacy portals. Upon
acquisition, Microsoft began developing its own version of the product, which was initially released in

May 2016. Since then, the two products are distinguished by these version numbers:



  • Adxstudio Portals = Versions 7.x and earlier
  • Portal Capabilities for Microsoft Dynamics 365 = Microsoft Dynamics CRM Online 2016 Update 1 or later

It is important to note that the two products are just that—two very separate products. Adxstudio Portals have their own supportability clauses and will eventually be deprecated. It is commonly known that the two products share many features and even some core code. However, there have been many changes to this product since Microsoft acquired it.


Useful links for Adxstudio Portals:


Adxstudio Portals documentation



Adxstudio supportability


Dynamics 365 Portal (CRM Portal)


Microsoft Hosted (Online):


Portal Capabilities for Microsoft Dynamics 365 is the official, fully supported portal offering that is part of the Dynamics 365 suite. This is a SaaS product, meaning Microsoft hosts the portal software as a service integration for Dynamics 365. Customers do not have the ability to modify the portal application code or access the infrastructure where it is hosted, in an Azure Web Application. 


Useful links for Portal Capabilities for Microsoft Dynamics 365:


Portal Capabilities Documentation


Portal Capabilities Supportability



Self Hosted(On-premise):


Portal Capabilities for Microsoft Dynamics 365—Self-hosted is a one-time, open source release from Microsoft to enable the transition from Adxstudio Portals. This release is open source under MIT licensing and is free. However, as this is a one-time-release, it is extremely important to note that this offering is unsupported, does not allow contributions, and does not receive bug fixes or new features. 


Useful links for open source:



Source Code Download


Functional differences between Adxstudio v7 and Dynamic 365 Portals


There are important functionality differences between Adxstudio v7 and Dynamics 365 Portals. If you are using the following functionalities of Adxstudio portals, they need to be reimplemented either using out-of-box customization patterns or a third-party solution:


• SharePoint Document Management

• Shopping cart and payment

Schema changes and new or enhanced features


As mentioned above, there are changes in schema and feature offerings between Adxstudio Portals and Portal Capabilities for Microsoft Dynamics 365 that are critical during the transition process. The following information identifies essential changes for the transition from Adxstudio Portals to Portal Capabilities for Microsoft Dynamics 365.


Multi-Language Portal (MLP) capabilities


Dynamics 365 Portals support multiple languages in a single portal website record in a simplified manner. Previously, Adxstudio Portals managed language by implementing a child website record for each language. MLP capabilities are not compatible between the two versions. The MLP feature, introduced in Portal Capabilities for Microsoft Dynamics version 8.2, consists of a new schema that requires an additional level of data for various entities, per language, to enable a functional portal. Of all the changes between versions, this is the single most important change. Awareness and understanding of the MLP schema/data requirements are critical to a successful transition. If you are transitioning via reimplementation, explained later in this document, automated data migration is not recommended. If you are transitioning via migration, you need to create specific Site

Settings for every website in the Dynamics 365 instance before the Version 8 package is deployed. Failure to create the required Site Settings for every website in the instance will result in data that is incompatible with the new schema, a non-functional portal, and you might need to restore the Dynamics 365 instance from a backup.

Portal Comment (adx_portalcomment):


Portals offer a variety of ways for Portal users to interact with Dynamics 365 users. Previously, as with Adxstudio Portals, many communications were enabled by the Note (annotation) entity as a default. With the introduction of Dynamics 365 Portals comes a new entity: Portal Comment (adx_portalcomment). The Portal Comment doesn’t replace the former portal functionality that used the Note; however, it enables a more user-friendly interaction. Case Management, for example, is the most commonly used portal feature using this new entity. Just as before, Dynamics 365 and Portal users can add comments to a case and other entities, only now comments are stored in Dynamics 365 and surfaced on the Portal via Portal Comments. When considering a reimplementation or upgrade transition to Dynamics 365 Portals, special consideration must be taken to manipulate existing Notes to

conform to the Portal Comment if you use Portal Comments. This is true for any entity where this functionality is enabled.

Feedback


Feedback is a new entity introduced with Portal Capabilities for Microsoft Dynamics 365. Feedback is used by default in various features of the Portal and replaces Idea Votes (adx_ideavote), Idea Comments (adx_ideacomment), and Blog Post Comments (adx_blogpostcomments). When considering a reimplementation or upgrade transition to Dynamics 365 Portals, special consideration must be taken to manipulate existing records of such entities to conform to the Feedback entity.


Knowledge management


Another enhancement to Portals is Knowledge Management capabilities. Previously, as with Adxstudio Portals, this was achieved by using the now-deprecated Article (kbarticle) and/or the Knowledge Base Record (knowledgebaserecord) entities. Portal Capabilities for Microsoft Dynamics 365 uses the Knowledge Article (knowledgearticle) entity to surface data to portal users in accordance with core Dynamics 365 Knowledge Management feature enhancements. Articles are not compatible with the portal’s enhanced Knowledge Management. When considering a reimplementation or upgrade to Dynamics 365 Portals, special consideration must be taken to manipulate existing knowledge management entities into Knowledge Article entity records.


Access control rules


A scope is now associated with Access Control Rules (ACRs). This scope will be missing on all ACRs after the migration so they will not function. Update all ACRs to either All content or Exclude direct child web files.


Web templates


Web templates now have a reference to a website record. This might be missing after migration, so none of the custom web templates will work and will cause not found errors on the site. To fix this, please make sure all web templates have a reference to a website record after migration. 


Deactivated webpages


As part of the migration, webpages are split into a root page and localized content page. Deactivated pages got a localized content page and this page was active, which caused links to appear and Page Not Found errors. After migration, use advanced find to find these pages and deactivate them. You can also remove inactive pages before the upgrade.


FetchXML in Liquid


Using FetchXML from within Liquid templates needs to have security requirements associated with it. Make sure appropriate entity permissions are given for any entity used in FetchXML.


Custom CSS


CSS classes have changed within the pages (in grid header rows, for example). Any custom CSS needs to be updated to conform to new classes.


Image files


Image files need to have proper URL format. Any image file with a space in the partial URL will not display. Partial URLs should be updated to remove spaces.



Prerequisites



  • Microsoft Dynamics 365 CRM Online 2016 Update 1 or later.
  • Latest Adxstudio Portal Solutions must correspond with v7.0.0025 or later.
  • Application code and solution schema must be unmodified; enhancements and schema changes made in the development of Portal Capabilities for Microsoft Dynamics 365 require that there are no legacy Adxstudio Portal customizations.
    • There are key differences, both in code and solution schema, that are not compatible between the two portal offerings.
    • If customizations beyond Dynamics 365 user configuration have been applied to the Adxstudio Portal, a successful, fully functional transition cannot be expected; therefore, functionality beyond the unaltered Adxstudio Portal offering will be unsupported during the transition.
  • Failure to bring your Adxstudio Portal to an original state can result in upgrade failure and/or inoperable features/functionalities once you move to Portal Capabilities.
  • Remove all unsupported features that do not exist or map to v8 portals.
  • Complete validation in the sandbox environment before proceeding to production instance upgrade.
    • A sandbox validation is necessary to ensure complete functionality and feature parity; validate that the Adxstudio Portal is in an uncustomized state before you transition.
    • Validation will allow you to identify conflicts that may have been overlooked, such as customizations or feature parity, without affecting the production environment.A Full backup of Dynamics 365 organization.

To take advantage of the Dynamics 365 Portal offering, Adxstudio customers who have made code modifications to the portal code or solution schema must revert back into compliance as noted above. Microsoft Customer Service and Support may decline standard support if an issue occurs that is determined to be a result of Adxstudio Portal customization(s), an incompatible feature between the two offerings, and/or instances which contain portal solutions from Adxstudio and Microsoft at the same time.


Note: Having both Adxstudio Portal and Microsoft Portal solutions at the same time is an unsupported scenario. Successful completion of the transition from Adxstudio is contingent upon deletion of Adxstudio. The open source version Portal Capabilities for Microsoft Dynamics 365 (self-hosted) must be used as a gateway to the online Microsoft-hosted version of portals. Failing to import the self-hosted solution packages before requesting online portal provisioning will result in an unsupported state and possible partial package import requiring the instance to be restored to its pre-upgrade state to avoid data loss.


Determine an upgrade approach


Option 1: Reimplementation


Reimplementation—Self-hosted


Reimplementation—Microsoft-hosted



Option 2: Migrate



Migrate—Self-hosted

Migrate—Microsoft-hosted



How can I determine, whether I should go with Reimplementation or Migration approach?

Microsoft has provided two Upgrade Approach i.e Reimplementation and Migration in order to upgrade Adxstudio to Dynamics 365 Portal. So the biggest question comes to your mind is, how would I get to know whether should I go with Reimplementation or Migration?


Answer Is - It totally depends on what level of customization and configuration you have done so far in your Adxstudio Portal. 


You should go with Reimplementation - 


If you wish to use new features, functionality, and data that might not otherwise be achievable without additional configuration and data migration. This is a very manual process and may not be ideal for organizations with an extensive amount of core portals content records, such as webpages, entity/web forms, or entity lists. This approach consists of deploying a completely out-of-box Dynamics 365 Portal website and manually migrating/creating required data.


You should go with Migration - 


This approach is ideal for organizations that do not intend to use new data-related features and/or functionality introduced with Dynamics 365 Portals. This approach is also ideal for organizations that have an extensive amount of core portal content records (data), such as webpages or entity/web forms/entity lists. 



How can I determine, whether I should go with Self-hosted or Microsoft-hosted portal solution?


Self-hosted(onpremise) Vs Microsoft-hosted(online)


On August 24, Microsoft released the Microsoft Dynamics 365 Customer Engagement Portals Source Code. The download contains the self-hosted Portals which are available for Dynamics 365 On-Premise. This will allow you to customize the portals per your requirements and deploy them to Dynamics 365 (On-Premise) as well as Dynamics 365 (Online).

The portals are compatible with the Online and On-Premise version 8.1 and later. The important thing to note is that this source code is provided to customers that are unable to deploy portals in an online environment, and are willing to maintain the portals code internally. Microsoft is not planning on supporting this code, which is also why it is provided under the open source license, and at the point of writing this, there are no acknowledgements of whether or not this will be supported in the future.


The download contains the solution files, the source code and the deployment instructions of the source code. The integration with the Portals web application can be implemented using an internal/organizational IIS server or use Microsoft Azure.


You can download the portals from the following link:


https://www.microsoft.com/en-us/download/details.aspx?id=55789


Reference: https://community.dynamics.com/crm/b/briteglobalsolutions/archive/2017/08/27/microsoft-dynamics-365-portals-source-code-available-for-on-premise-customers


Can refer the following article to check - Difference between Microsoft Dynamics CRM Portals, ADX Studio, Portals from Microsoft, XRM Portals and Open Source Dynamics Portal.


https://community.dynamics.com/crm/b/mohamedmostafacrmblog/archive/2017/06/28/difference-between-microsoft-dynamics-crm-portals-adx-studio-portals-from-microsoft-xrm-portals-and-open-source-dynamics-portal



Note- I am not going to discuss about Portal Self-hosted (on-premise) version in this article, as it is unsupported. I will only discuss about the Microsoft hosted Migration and Reimplementation approach



I haven't done any changes in Adxstudio Visual Studio solution, which approach should I choose?


Answer - That's great, you are one level up and believe me your upgrade is going to be very smooth. If you have an extensive amount of core portals content records, such as webpages, entity/web forms, or entity lists, then you should go with Migration Approach. And in order to use the portal new features, you will have to create these configuration records manually in CRM.


If you have less amount of core portals content records in CRM and wish to use new portal features, functionality, and data. And want to create all your existing portal configuration manually then you should go with ReImplementation Approach.


I don't think, you need to think about Self-Hosted Portal version in your case.


I have done a lot of changes in Adxstudio Visual Studio solution, which approach should I choose?


Answer - If you have an extensive amount of core portals content records, such as webpages, entity/web forms, or entity lists, then you should go with Migration Approach. And in order to use the portal new features, you will have to create these configuration records manually in CRM.

If you have less amount of core portals content records in CRM and wish to use new portal features, functionality, and data. And want to create all your existing portal configuration manually then you should go with ReImplementation Approach. But one additional thing that you need to think about is finding the way in order to replicate your solution changes in the Microsoft-hosted portal.


In addition, you will also have to think about the alternative way/approach in order to replicate your Adxstudio solution changes in an online portal. One way, you can think about is the self-hosted portal solution and can easily replicate all your changes there but I as conveyed this is unsupported.



I have customized Adxstudio Visual Studio Solution heavily and now I want to upgrade to the Microsoft-hosted portal solution, how can I replicate my solution changes in an online portal?


There is no straightforward solution to do this.



  • If you have made changes in Adxstudio OOB JS and CSS file or added your custom file, then in Microsoft Portal you can keep it inside the Web File and refer in your webpage/web template/Entity form/Entity Lisi wherever you have given the reference of it.

  • If you have added your custom aspx pages, then you need to host this in any public domain like Azure etc.
  • If you have made changes in OOB Portal pages, then there is no option to replicate it on an Online portal. Think about some alternative it's totally up to the changes that you have made.



So, Let's Start...

Migration - Microsoft Hosted

Step 1- Back-up a copy


The backup should not be needed, it is needed only if unforeseen issues arise that require you to restore the original Dynamics 365 instance. 

  • Initiate a backup of the existing production Dynamics 365 instance. Do not proceed until the backup has succeeded.





Step 2- Prepare for solution import and removal

The information in this section adheres to standard Dynamics 365 solution removal practices by helping identify dependencies that may have been created post-install and acknowledges scenarios that may cause unnecessary strain on the instance if not considered. 

1. Within the originating Dynamics 365 instance, remove all Web Notification URL records. 




















2. Delete all SDK Message Processing Steps where the Event Handler is equal to Adxstudio.Xrm.Plugins.WebNotificationPlugin. The preferred method, defined here, is to use the Adxstudio Web Notification Configuration UI. Annotating the specific entities for which Web Notifications are enabled prior to deletion will be essential to reconfiguration post upgrade. 

  • Within the Adxstudio Web Notification Configuration UI, remove all entities from the Send Notifications column. Select Save & Publish and then Disable Notifications. Note: The processing of these requests can take five minutes or more, depending on the number of entities that have enabled Web Notifications. When the requests are complete, the UI button will become active. 
  • If you experience issues with this UI or are not certain all entities have been removed, please use native Dynamics 365 functionality to confirm; for example, executing an Advanced Find, Customize the System or the SDK’s Plugin Registration Tool. 
  • Solution removal will not succeed unless all Web Notification SDK Message Processing Steps are removed.

























































Disabling all Adxstudio processes is recommended, but not required. Any customizations with a dependency on Adxstudio entities and/or plugins must be removed for solution removal.





Step 3- Create required upgrade site settings


As mentioned earlier, there have been various schema changes in the portal product. Portal Capabilities for Microsoft Dynamics 365 introduced multi-language support. As a result, various portal entities now have changed to facilitate this. For example, webpages now require a Root Page and a Localized Content Page. Before upgrading, you must specify all the portals as requiring an upgrade via Site Settings to enable website data creation as required. If there are other websites in the Dynamics 365 instance or you neglect to create the following Site Settings, their data will not conform to the new schema and the portal will be inoperable. Neglecting this step will require the org to be restored from a backup. 



1. Identify the Website for upgrade via Site Setting



      a. Name = UpgradeWebsiteData

      b. Value = true



2. Specify the desired language (LCID) by Site Setting. The correlating language must be enabled in the Dynamics 365 instance. Default is English 1033. Example value below.

       a. Name = WebsiteLCIDforUpgrade
       b. Value = 1033













Note: It is very important to make sure site settings are typed incorrectly. Failing to do so can cause migrated data to not conform to the new schema, the portal will be inoperable, and the process will have to be started again by restoring data from backup.

Note: Once the upgrade is finished, make sure these site settings are removed or they can cause issues when upgrading to a new version in the future.

Step 4- Import the Dynamics 365 self-hosted Portal solution package


This step must be taken regardless of desired Microsoft hosted portal. Do not use the Dynamics 365 Administration Center to install the solution package at this step.

Choosing the Dynamics 365 Portal type that contains the most feature parity with the Adxstudio Portal is critical to success and must be considered before this step. Portal types and features have changes that may be critical to your specific use case. 


Steps to Import portal package into Dynamics 365:

You need to download the Dynamics 365 SDK to get the Package Deployer tool in order to import portal packages into the Dynamics 365 environment. 


Register Dynamics 365 SDK cmdlets:


Note: Registering the Dynamics 365 SDK cmdlets is a one-time activity that must be performed on a computer. 


1. Download the Dynamics 365 SDK package from Microsoft Download Center. 


2. Run the executable file (.msi) to extract the content of the package. 


Let’s assume you extracted the package to C:\Dynamics365 folder on your computer. The Package Deployer tool and the other required files become available at the following location: 


C:\Dynamics365\SDK\Tools\PackageDeployer 


3. Follow the below steps to register the SDK’s PowerShell cmdlets: 


a. Start Windows PowerShell with elevated privileges (run as administrator).












b. Navigate to the PowerShell folder under the PackageDeployer folder. 


cd C:\Dynamics365\SDK\Tools\PackageDeployer\PowerShell 
















c. Run the RegisterXRMTooling.ps1 script to register the Package Deployer Windows PowerShell assembly (.dll), and install the Windows PowerShell snap-in for the Package Deployer tool. 


.\RegisterXRMTooling.ps1 





For more details on SDK’s PowerShell cmdlet, see here


Note: If you are unable to run the script due to the permission issue.


If the script execution policy is set to restricted, elevate it by running the following command: 

set-executionpolicy unrestricted 




















Now, Run the RegisterXRMTooling.ps1 script to register the Package Deployer Windows PowerShell assembly (.dll), and install the Windows PowerShell snap-in for the Package Deployer tool. 



.\RegisterXRMTooling.ps1 

Wait for 5-10 seconds to complete the registration of Package Deployer Windows PowerShell assembly









Run Portals import script:

Once, RegisterXRMTooling.ps1 registered successfully Next step is to import the portal solution in your CRM instance.

For doing this, we are going to use Package Deployer Packages, that come with the solutions components (MicrosoftDynamics365PortalsSolutions.exe). 

You can download that item from the Microsoft Download Center.

The portals solution distribution includes the following PowerShell scripts in the Portals\PackageDeployerPackages folder: 


Import.ps1: 


Navigate to the \PackageDeployerPackages\ folder. Within that folder execute the import script, 

.\Import.ps1












This will prompt you to select your connection type, on premises or online.















This will prompt you to Enter your full organization URL, ie. https://orgname.crm.dynamics.com, then enter your language LCID code (1033 for the English language). 

Then you will be prompted to select your package. You will want to select the starter portal you already have installed. Remember this package list and names differs a bit from the Adxstudio Installer website gallery list. Below is a map Adxstudio to Dynamics 365 portals.




































So, if you had installed Basic Portal in Adxstudio, you have to opt Started Portal while upgrade and if you had installed Customer Portal in Adxstudio, you have to opt Customer Self-Service Portal while upgrade and so on.

I had installed Customer Portal in Adxstudio, hence I am entering 2 and hitting Enter.

This will prompt to enter the organisation credential.




Enter your CRM organisation credential and press Ok. It will connect to your organisation and installed the opted Portal solution.













Go and have a cup of coffee, it will take around 30-40 mins to get completed. 

Once it is completed, you will be left with a combination of the Adxstudio solutions and the new Dynamics 365 portal in your CRM Organisation.




Step 5- Remove all Adxstudio Portal solutions


Delete all Adxstudio solutions using First in Last Out (FILO) order. For help identifying the correct order see Uninstalling Portal Solutions.


Login to your CRM instance where you are upgrading your Portal and hit below query in browser new Tab:


https://[orgname].crm[x].dynamics.com/api/data/v[P].[Q]/solutions?fetchXml=<fetch mapping='logical'><entity name='solution'><attribute name='installedon'/><attribute name='friendlyname'/><order attribute='installedon' descending='true'/><link-entity name='publisher' to='publisherid'><attribute name='customizationprefix'/><filter type="and"><filter type="or"><condition attribute='customizationprefix' operator='eq' value='adx' /><condition attribute='customizationprefix' operator='eq' value='msa' /></filter></filter></link-entity></entity></fetch>


NoteReplace [orgname] with your organisation name, [x] with the hosted region code of CRM like 8 for India and 
[P].[Q] with the CRM version. like 8.2 or 9.0 etc

After hitting this URL in the browser, the end result is a list of all portal-related solutions in the order that they should be uninstalled (from top to bottom): 


Output:


{
"@odata.context":"https://microsoftsupport.crm.dynamics.com/api/data/v8.2/$metadata#solutions(installedon,friendlyname,solutionid)","value":[
{
"@odata.etag":"W/\"590188\"","installedon":"2017-02-18T21:54:25Z","friendlyname":"Custom portal","solutionid":"5e76f5e5-e538-435e-bb63-400e532ba4b2","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"590023\"","installedon":"2017-02-18T21:54:02Z","friendlyname":"Microsoft Azure Storage","solutionid":"aef59b0d-ec52-4786-bbe2-bdec93c5536c","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"589803\"","installedon":"2017-02-18T21:53:31Z","friendlyname":"Feedback","solutionid":"6f3462c1-5551-42ea-bd3d-26b8b7e37da9","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"589042\"","installedon":"2017-02-18T21:51:07Z","friendlyname":"Microsoft Web Forms","solutionid":"51bde720-1c52-4748-be52-1e994a64077e","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"583378\"","installedon":"2017-02-18T21:50:45Z","friendlyname":"Microsoft Identity Workflows","solutionid":"c96c79e7-ea0d-425c-97a7-3b5149d6eeb2","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"583263\"","installedon":"2017-02-18T21:50:30Z","friendlyname":"Microsoft Identity System Workflows","solutionid":"3058144c-32c6-45a1-b985-9e77c2a6f3bf","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"583200\"","installedon":"2017-02-18T21:49:53Z","friendlyname":"Microsoft Identity","solutionid":"1abf507f-15fd-40b5-859f-b47629337763","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"582527\"","installedon":"2017-02-18T21:49:17Z","friendlyname":"Web Notification","solutionid":"d502ff22-15ac-4870-90e7-e34df757e0a2","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"582076\"","installedon":"2017-02-18T21:49:02Z","friendlyname":"Microsoft Dynamics 365 Portal Base Workflows","solutionid":"710c9ea3-8a3c-4302-9dbf-f21da2511ee2","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"582028\"","installedon":"2017-02-18T21:48:47Z","friendlyname":"Microsoft Dynamics 365 Portal Base System Workflows","solutionid":"ba055086-9b27-4d84-ba83-e19c50fabff8","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"579847\"","installedon":"2017-02-18T21:43:24Z","friendlyname":"Microsoft Dynamics 365 Portal Base","solutionid":"ba713b86-047e-46df-9148-770682d51e39","publisher1_x002e_customizationprefix":"adx"
},{
"@odata.etag":"W/\"562433\"","installedon":"2017-02-18T21:41:16Z","friendlyname":"Portal Dependencies","solutionid":"a3ed18a6-0238-49e6-b00b-0b30344d6d76","publisher1_x002e_customizationprefix":"msa"
}
]
}


Note: You need to be very careful while deleting the solution otherwise, you may face below error message.


Cannot Delete Component Error is thrown due to a dependency on another solution.






Follow this article for help in identifying the correct order to remove all Adxstudio Portal Solutions.



Step 6- Request Microsoft Portal provisioning via Dynamics 365 Administration Center 


The provisioning of a Microsoft-hosted portal will include portal solution package installation and the deployment of an associated Azure Web Application to host your chosen portal. During the solution package installation, the self-hosted version of the portal solutions will be upgraded to the latest version available at the time of provisioning request.  


• Please reference the Portal Administrator’s Guide to provision your portal.



Step 7- Use new Portal data features and functionality


Portal-related data creation is highly dependent on each unique portal implementation. Due to schema differences between the portal products, importing data may be counterproductive and is not advised. 


It will be necessary to configure much of the Dynamics 365 Portal in the Web Client itself. The Portal’s content editor will be useful in this scenario; hence, the emphasis on maintaining a functioning copy of the Adxstudio Portal even if you chose to take your portal offline to your Portal Users. We recommend that all features and functionalities of the newly created Dynamics 365 portal are tested after manual data creation, with an emphasis on portal content security implementations if previously used.  



Step 8- Validate Portal functionality


It is highly recommended that all features functionalities of the newly created Dynamics 365 portal are tested post-upgrade with an emphasis on portal content security implementations if previously used. 



Step 9- Troubleshooting

If Portal provisioning is successful, however, upon loading up the Portal URL, you will see a message Getting Set Up. This can happen in two cases: 


Solution installation in your CRM instance didn’t succeed or is in progress. 



  •  To check this, go to Dynamics 365 online admin centre. 
  •  Go to the Instance tab.
  •  Select your Dynamics 365 org (for which you have provisioned the portal).
  • Click the Solutions option in the right-hand box to go to the solution management page. 
  • In the solution management page, validate if the Portal type you chose during portal provisioning shows as Installing, Install Pending, or Install Failed. 
  • If it shows up as Installing or Install Pending, it means the solution installation is in progress and you should wait.
  • If it shows up as Install Failed, it means the solution installation failed.  
    •  In this case, retry again from the Solution management screen, as this can fail due to transient issues. 
    •  If you have done multiple retries and still it doesn’t work, then please contact support with details about your org and portal type. 

Solution installation succeeded, but the Portal website record is different then what is expected by Portal code.


  • To check this, go to Dynamics 365 online admin centre. 

  • Go to the Instance tab.

  • Select your Dynamics 365 org (for which you have provisioned the portal). 
  • Click on the Solutions option in the right-hand box to go to the solution management page. 
  • On the solution management page, validate if the Portal type you chose during portal provisioning shows as installed.
  • If it shows up as Installed, it means solution installation worked, but Portal code is not able to connect with the right website record. To fix this: 
      • Go to your Dynamics 365 organization.
      • Navigate to Settings -> Portal -> Settings. 
      • Check if there is a record called PackageImportComplete created in your system.
      • If not, then create one manually with the following values:
        • In the Name field, put the value as PackageImportComplete. 
        • In the Value field, you need to put the GUID of the website record corresponding to your portal type and language selected during provisioning. 
        • To find this GUID, provision a trial portal on a new trial org with same language and type.
        • Once provisioning is finished, navigate to your Dynamics 365 org and take the GUID of the website record created in the Org. 
        • After creating the PackageImportComplete setting, create a new website binding. To do that:  
          1. Go to main navigation -> Portals -> Website binding. 
          2. Create a new record.
          3. In the Name field, put any text value. 
          4. In the Website field, select the appropriate website record. 
          5. In the Sitename field, fill in the URL of your portal without https://. For example, if your URL is https://contoso.microsoftcrmportals.com, use contoso.microsoftcrmportals.com 
          6. Once the website binding is created, restart the portal by going to Portal Admin center -> Portal actions -> Restart action. 

Portal provisioning is successful and new portal loads. However, some of the configuration doesn’t work as expected. 
  • This can be due to two main factors: 
    • Change in functionality between v7 and Dynamics 365 portals. Please read Key differences | Solutions compared section to see some common differences. 
    • Custom development is done in v7 website. In this case, this specific functionality will have to be reimplemented to conform with the extensibility patterns supported in Dynamics 365 portals.


Step 10- Remove Upgrade Site Settings

Once the upgrade is finished, make sure these site settings (Created in Step 3) are removed or they can cause issues when upgrading to a new version in the future.


  • UpgradeWebsiteData
  • WebsiteLCIDforUpgrade



Reimplementation - Microsoft Hosted

Step 1- Back up a copy

Refer Step 1 of Migration Approach.

Step 2- Reconfigure the Adxstudio Portal Website Connection.

This section will help you bind your existing portal website to use the newly copied Dynamics 365 Sandbox instance. This step is relevant and useful even if you intend to take your portal offline during this process. When reconfiguring the newly implemented portal, a functioning copy of the Adxstudio Portal is pivotal to success.  
  • Connect the Adxstudio Portal application to the sandbox instance.
    • First, determine which of two methods was originally used to connect the Adxstudio Portal application to the Dynamics 365 instance by checking for a settings.xml file, which resides in the App_Data folder, a sub-folder of the application’s MasterPortal, at the portal’s hosting infrastructure.
    • If a settings.xml file exists, remove it, and restart the website. This will allow you to use the Adxstudio Connection Wizard.
    • If a settings.xml file does not exist, this indicates that a connection string was manually written to the web.config file within the application’s MasterPortal folder. This will require manual modification. Examples can be found within the web.config file itself. 

Step 3- Prepare for Adxstudio Portal solution removal

Refer Step 2 of Migration Approach.

Step 4- Remove all Adxstudio Portal solutions

Refer Step 5 of Migration Approach.

Step 5- Import the Dynamics 365 self-hosted Portal solution package

Refer Step 4 of Migration Approach.

Step 6- Request Microsoft Portal provisioning via Dynamics 365 Administration Center

Refer Step 6 of Migration Approach.

Step 7- Manually create Portal-related data 

Once the Adxstudio portal gets removed and Dynamics 365 portal get installed, Next step is to manually create your existing Portal configuration in CRM in order to use existing portal functionality.

Portal-related data creation is highly dependent on each unique portal implementation. Due to schema differences between the portal products, importing data may be counterproductive and is not advised. 

It will be necessary to configure much of the Dynamics 365 Portal in the Web Client itself. The Portal’s content editor will be useful in this scenario; hence, the emphasis on maintaining a functioning copy of the Adxstudio Portal even if you chose to take your portal offline to your Portal Users. We recommend that all features and functionalities of the newly created Dynamics 365 portal are tested after manual data creation, with an emphasis on portal content security implementations if previously used. 

    References:





                                              


    Question - 
    I am using Adxstudio 7.0.00021 portal with MSCRM 2015 online. Now we are planning to upgrade our Adxstudio Portal and migrate our CRM to Dynamics 365. On which Adxstudio version we should plan to upgrade?
    ✅Answer -
     if you are planning to move from CRM 2015 to D365:
    • For Dynamics 365 versions up to 8.1.0, Adxstudio Portals version 7.0.0018 or higher will be required.
    • For Dynamics 365 from version 8.1.1 up to and excluding 9.0.0, Adxstudio Portals version 7.0.0024 or higher will be required.
    • For Dynamics 365 version 9.0.0 or higher, Adxstudio Portals version 7.0.0026 or higher will be required.


    Question - 
    I am using Dynamics 365 CRM Online, Which Adxstudio version should I upgrade to?
    ✅Answer -
    Plan to upgrade to Latest Adxstudio version 7.26. Because earlier version will no longer be supported by Dynamics 365 due to not having TLS security.

    Question - 
    What are the steps to upgrade my Adxstudio to the latest version?

    Question - 
    I am using Adxstudio 7.20/21/22/23 version. Which version of Adxstudio migration is advantageous. Do I need to upgrade step by step to each higher version or can I directly upgrade to latest Adxstudio 7.26?
    ✅Answer 
    You can directly upgrade Adxstudio 7.21 to 7.26 ver. 

    Question - 

    I am using Adxstudio 7.25, Do I still need to upgrade my Adxstudio in order to migrate it to Dynamics 365 Portal.?

    ✅Answer 
    No, not needed. Adxstudio Portal Solutions must correspond with v7.0.0025 or later in order to upgrade to Dynamics 365 Portal.

    Question - 

    What is the rollback strategy if something goes wrong while doing an upgrade?

    ✅Answer 
    It is mandatory to take CRM backup (from Office 365) at each step so that if any unforeseen issues arise, you can restore the backup immediately  Take CRM DB backup in case of on-premise version.

    Question - 

    We have used mostly OOTB configuration and custom implementation is very minimal, how will be the effort to migrate my Adxstudio to Microsoft Portal?

    ✅Answer 
    An effort would be less obviously. Also, chances of any unforeseen issue while upgrading portal would be less.

    Question - 

    Should I opt Reimplementation or Migration approach in order to Upgrade my Adxstudio portal to Migration Portal?

    ✅Answer 
    Depends on the customization/configuration you have done so far.

    If you have an extensive amount of core portals content records, such as webpages, entity/web forms, or entity lists, then you should go with Migration Approach.

    Or if you want to develop each and everything from scratch manually then go with Reimplementation. Your portal configuration will not remain in CRM if you go with this approach.

    Question - 

    Is there any impact on my existing Portal Users, who were accessing the Adxstudio Portal like invitation redemption and authentication mechanism?
    ✅Answer 
    If you go with Migration approach. then there would be no impact on existing portal user. While In case of Reimplementation, you might need to send the invitation again in order to access the Microsoft Portal.

    Question - 
    I am having issues while provisioning the portal from Office 365. What should I do?
    ✅Answer 
    Raise a ticket with Microsoft.

    Question - 

    After installing the Portal from Office 365, It showing failed status. What should I do?

    ✅Answer 
    Make sure you are having Administrator Rights. Try again, if still having issues Raise a ticket with Microsoft.

    Question - 

    Can I Change my Portal CRM Instance URL once it is provisioned? Let say I have provisioned my portal in CRM Instance A, now I want to change it to CRM Instance B. Is it possible?

    ✅Answer 
    Yes, you can change the CRM instance after provisioned the portal.

    Question - 
    Can I Change my Portal URL once provisioned?
    ✅Answer 
    No, you cannot change the portal URL once provisioned, You need to raise a ticket with Microsoft to do this activity?

    Question - 

    Does Microsoft Portal support On-Premise version?

    ✅Answer 
    Yes, It provides. But it is unsupported.

    Question - 

    Change CRM Portal Instance URL once it is provisioned?


    Question - 
    Will my custom branding/CSS remain in CRM after the portal upgrade?
    ✅Answer 
    Custom branding will likely need to be redone

    Question - 
    If I choose Migration approach in order to upgrade the Adxstudio, then Will I be able to use new portal features/configurations?
    ✅Answer 
    New portal data from the latest version will not be imported. So you will not get any new templates or configurations from the new version, but your existing data will be maintained. If you want new portal data and configurations you can install a fresh portal in a new instance and manually copy over data.

    Question - 
    If I have multiple portals installed in my CRM instance, then what would be the upgrade approach in that case?
    ✅Answer 
    If multiple websites are present all websites must be upgraded at once and therefore all must have the 2 site settings. (upgrade site settings must be created for all the website/portals separately)

    Question - 
    Is there any configuration needs to be changed in existing Entity Form/Entity List/Web Template after Portal upgrade?
    ✅Answer 
    You will have to update all the entity forms, entity lists and web templates “website” look-up field as that was blank after the update (as you know, v7 didn’t have website look-ups on these entities).

    Question - 
    I have customized the ADX Master Portal solution to a huge extent like added the many ascx pages inside control and calling from web form steps, added custom new pages and even modified the Login Controller and Account Controller like files also and many more things.
    Can you please suggest in this scenarios how can I upgrade to CRM Portals?
    ✅Answer 
    If you opting the Microsoft-hosted portal solution, then these changes will not remain with you. You will have to think some alternative approach to replicate.
    You can either go with the self-hosted portal solution, but as I said it's unsupported.


    Question - 

    I am planning to migrate my Adxstudio Portal to Dynamics 365 Portal, then what features/functionality is no longer supported in new portal?
    ✅Answer 
    If you have done OOB and supported configuration then you no need to worry about that.
    Only few site settings (like Azure AD Authentication, earlier we have to create the site setting manually in order to enable Azure AD authentication, while in Dynamics 365 Portals, these site settings are present OOB) has been changed and no longer supported in Dynamics 365 portal, that you will have to identify. Except that I don't think you will be having trouble related to existing portal configurations.
    You will have to do little compromise with Portal UI, only if you have done heavily branding and made extensive changes in portal CSS.


    Question - 

    My client does not want to upgrade the Adxstudio to Dynamics 365 Portal, then what would be the best way to keep my portal running and make it compatible with Dynamics 365.?
    ✅Answer 
    I think in this case, you should upgrade your Adxstudio to the latest version (7.26) at least in order to support with Dynamics 365. But Microsoft is not going to provide any support (after Aug 2018) in case of any issue/bug or unforeseen problems. So better to upgrade it to Dynamics 365 Portal in order to leverage the Microsoft support and new features of the portal.







    If you have further queries/seek clarification, please do let me know. 
    Also, please do not forget to share your valuable feedback. It means a lot to me.

    Good Luck 👍
    Blogger Widgets