Plugin registration tool stopped connecting to Dynamics 365 , Unable to connect Plugin registration Tool

Plugin registration tool stopped connecting to Dynamics 365

In case you have been trying to get the Dynamics 365 SDK plugin registration tool to work for latest version of Dynamics 365 online and facing issues like this one:

· At making a connection stage the tool keeps on circling all the data centres and still does not connect and gives error such as Bad username or password

· Error during connection such as Bad request

· IF you pick specific data centre also, still get error while connecting.

Well, you need to download the latest plugin registration tool. Following simple steps help to download Dynamics 365 9.0 tools:

You can follow below steps with screens or for more details information look into Microsoft docs link

1. Open Power Shell from windows menu.

2. Navigate to folder location where tools will download.


3. Copy Paste following command in PowerShell command( referred from the Microsoft Link).

$sourceNugetExe = “”

$targetNugetExe = “.nuget.exe”

Remove-Item .Tools -Force -Recurse -ErrorAction Ignore

Invoke-WebRequest $sourceNugetExe -OutFile $targetNugetExe

Set-Alias nuget $targetNugetExe -Scope Global -Verbose


##Download Plugin Registration Tool


./nuget install Microsoft.CrmSdk.XrmTooling.PluginRegistrationTool -O .Tools

md .ToolsPluginRegistration

$prtFolder = Get-ChildItem ./Tools | Where-Object

move .Tools$prtFoldertools*.* .ToolsPluginRegistration

Remove-Item .Tools$prtFolder -Force -Recurse


##Download CoreTools


./nuget install Microsoft.CrmSdk.CoreTools -O .Tools

md .ToolsCoreTools

$coreToolsFolder = Get-ChildItem ./Tools | Where-Object

move .Tools$coreToolsFoldercontentbincoretools*.* .ToolsCoreTools

Remove-Item .Tools$coreToolsFolder -Force -Recurse


##Download Configuration Migration


./nuget install Microsoft.CrmSdk.XrmTooling.ConfigurationMigration.Wpf -O .Tools

md .ToolsConfigurationMigration

$configMigFolder = Get-ChildItem ./Tools | Where-Object

move .Tools$configMigFoldertools*.* .ToolsConfigurationMigration

Remove-Item .Tools$configMigFolder -Force -Recurse


##Download Package Deployer


./nuget install Microsoft.CrmSdk.XrmTooling.PackageDeployment.WPF -O .Tools

md .ToolsPackageDeployment

$pdFolder = Get-ChildItem ./Tools | Where-Object

move .Tools$pdFoldertools*.* .ToolsPackageDeployment

Remove-Item .Tools$pdFolder -Force -Recurse


##Remove NuGet.exe


Remove-Item nuget.exe

4. Hit enter button Tools will be downloaded in specific folder.


5. After successful execution of command check tools downloaded in specific location.



Try using this Plugin registration tool with latest version of Dynamics 365 and it will work just fine.

Hope it helps and Happy Learning.

Written by Deepesh Somani, do visit his blog

Plugin registration tool stopped connecting to Dynamics 365

How to setup Dynamics 365 Portals in CRM Online?

How to setup Dynamics 365 Portals in CRM Online?

Follow the below steps to setup Dynamics 365 Portals in CRM Online,

Step 1:Click here and create Dynamics 365 30 day’s trial version


Use your existing Dynamics 365 Login Credentials to login Office 365 Admin Portal.

Step 2:Click here to navigate to Office 365 Admin Portal.

(For this article, have created Dynamics 365 30 day’s trial version).

Step 3: On the Left hand side menu, you can see Dynamics 365 under Admin Centers. Click on it.

Admin Center - Dynamics 365

Step 4: Follow the below steps,

  1. Click on APPLICATIONS Tab.
  2. Click on Portal Add-On under Manage applications.
  3. Click on MANAGE.

Dynamics 365 Administration Center

Step 5: Provide the below details,

  1. Name: Provide some Name for the Portal.
  2. Type: It is Trial by default.
  3. Select Portal URL: Provide unique name for your portal.
  4. Dynamics 365 Instance: Select your CRM Online Instance name.
  5. Select Portal Language: Select your Portal Language. (For Example: English (United States))
  6. Select Portal Administrator: Select required user to make the person as an Admin for your Portal.
  7. Portal Audience: Select the required Audience to whom this portal for. (For Example: Customer)
  8. Select Portal to be deployed: Select the required portal. Am choosing Dynamics 365 Portals – Custom Portal.

After providing all details, Click on Submit.Dynamics 365 Portal Details

Step 6: Click on Accept.Dynamics 365 Portal - Terms of Service

Step 7: Portal Request is submitted. It will take sometime to import Dynamics 365 Custom Portal Solution to Dynamics 365 CRM and to host the Portal in Azure.

To see the status of the Portal, click on the link as shown in the below picture.

Dynamics 365 Portal - Request Submitted

Step 8: Current Status is as shown below. Please refresh this page after sometime.

Dynamics 365 Portal - Portal being Configured

Step 9: Once portal is created, you can see the Base Portal URL link. Click on it to see your Dynamics 365 Portal.

Dynamics 365 Portal - Portal Created

Step 10: You can see the below Portal Home Page.

Dynamics 365 Portal - Portal Home Page

Step 11: Open Dynamics 365 CRM Online Organization to see the below Portal related Solutions imported and Portals Area in Site Map.

Dynamics 365 Portal - CRM Portals Solutions

Dynamics 365 Portal - CRM Portals Area

Hope you learned a new thing today !!!

Share your valuable feedback on this article.


Published at Mon, 25 Sep 2017 05:33:27 +0000

Microsoft Dynamics 365 Customer Engagement Portals Source Code

Microsoft Dynamics 365 Customer Engagement Portals Source Code


Click here to download Microsoft Dynamics 365 Customer Engagement Portals Source Code.


Published at Mon, 25 Sep 2017 06:30:48 +0000

CRM Portals and Dynamics CRM Portals Feature Comparison

CRM Portals and Dynamics CRM Portals Feature Comparison


Click here for “CRM Portals and Dynamics CRM Portals Feature Comparison

Version 9.0 – Execute custom action with all parameter types in Dynamics CRM Version 9.0

Execute custom action with all parameter types in Dynamics CRM Version 9.0

Dynamics Version 9.0 introduced the Xrm.WebApi namespace which provides all the methods to interact with dynamics CRM server from client side script.

Detailed Documentation –

However recently I was working on a project to upgrade the SOAP calls from client and replace them with the new Xrm.WebApi methods. Create/ delete/ update were kind of easy and was easily ported to the new API’s.

However then came the Actions. The client had actions which had many input parameters and which were getting invoked from the client using SOAP calls. We had to port them to the Xrm.WebApi. But in Xrm.WebApi we did not had any function like executeAction. But the Xrm.WebApi.execute came to our rescue.

Let’s first examine Xrm.WebApi.execute method. Microsoft documentation shows it like this –

Xrm.WebApi.execute(request).then(successCallback, errorCallback);

For the sake of brevity of this blog post, I am skipping the documentation of the parameters. For detailed information on the parameters, please refer the below Microsoft documentation link –

So how to call an action with input parameters? For this post, I created an action named “new_TestAction”. The action is global. It has the following input parameters.

  • Name – Type (string)
  • Age – Type(string)
  • InputEntityReference – Type (EntityReference)
  • InputEntity – Type (Entity)
  • InputEntityCollection – Type(EntityCollection)

For entityreference, entitycollection and entity, I have kept the Entity as Account Entity. All set and done. Now the next step is to call the action. below is the sample code to create the request object. All the important parameters has been highlighted and appropriate comments put.

TestAction1: function (input1, input2, inputEntityReference, inputAccount, inputAccountCollection) ,
“Input2”: ,
“InputEntityReference”: ,
“InputEntity”: ,
operationType: 0, // 0 for action, 1 for function and 2 for CRUD
operationName: “new_TestAction1”

Next is the code to create this request object and pass the object to the action.

ExecuteAction: function () ;
var accountEntity = ;
var accountEntityCollection =[
var requestObject = new TestAction1(“Name”, “Age”, accountReference, accountEntity, accountEntityCollection);
Xrm.WebApi.execute(requestObject).then(function (result) ,
function (error) );

Simple isn’t it. I haven’t covered the other primitive types like – Decimal/ Int. They are pretty simple like for int, it is Edm.Int32.

Hope this helps!


{Zero Code development} Putting images in Dynamics 365 view for encoding Case severity

Putting images in Dynamics 365 view for encoding Case severity

Another fantastic article for Deepesh Somani


Business Requirement: Often there is requirement to show Case severity in some colour encoded way in Dynamics 365. For example, refer image below:


Solution: Below steps can be used to achieve this requirement without writing code:

1. Go to Settings->Customization->Entity->fields and add a new field of type Option Set. In the example above I have created a new field Case Severity on Case entity. Add items text from the following link:

Following images were used in the above example:



2. Add the column as the first field in Active Case view and other views that you wish. Optionally, you can also place the field on the Case entity form. Next, in the editable grid you will be able to set the priority by this field:


3. Not only that, you will be able to group as well by selecting Group by:



Fix : Qualify button on Lead not working in Dynamics 365

Qualify button on Lead not working in Dynamics 365

I have been working with Customer IT Team on a Dynamics 365 project and we have been doing kind of fancy stuffs, new features and what not. And suddenly we are being reported that Qualify button on lead form is not working. However the same is working from the “Home Page grid”.

First glance and I thought – Must be some silly tampering with the Qualify button. However one quick inspection with Ribbon Workbench negated that suspicion. How can such a stuff working for years can’t work all of a sudden in our environment? Product Bug? Can’t be for sure. It’s been working for years!

After beating around the bush, we finally decided to keep a back-up of our customizations and restored vanilla lead form from different environment. Qualify button started working like piece of cake.

In curiosity, to find out what caused the issue, I started removing one field after the other and finally found that the magic field was “Company Name” field. The moment I removed that, Qualify stops working.

Strange isn’t. But that’s how it works.

Honestly, Qualify button may not work for host of reasons but if you find yourself banging your head over this functionality, this article might just make your day!

Hope this helps


{Quick Tip – Dynamics 365 portals (ADX)}–Dynamically show/ hide entity forms in Dynamics 365 portals (ADX portals) depending on Business Logic using Liquid templates

As I have been working mostly on Dynamics 365 portals, here goes another D365 portal post.

So here is the requirement. The portal customer applies for loan and then views the status of the loan request through the portal. However for every customer, there is one contact who is kind of Power User and is hence able to view some additional details on the Loan Request Form which the regular portal customers are not able to see,

The additional details are like.

  • The internal user with whom the loan request is currently pending
  • Additional internal communications among the internal team regarding the loan request.

So here is the set-up.

  • Two Forms for loan request entity
    • General form visible to all the users
    • Admin form visible to only the power users which shows the additional details

In the portal there is loan request web-page, which depending on the logged in-user, renders the Admin form.

To determine whether the portal user is a Power User or not, there is a field on the contact entity – “Is Power User” which need to be set. Below is the screenshot for the same.

schema name for the field – new_ispoweruser


Creating a loan request entity and then showing it up for the demo would take lot of time and also can’t use the screens from the client system due to legal issues. So here I would basically show you with the account entity, how you can dynamically render a entity form based on condition using Liquid.

Step 1 : Create a Blank Web-Page and set it up in the Portal Navigation

Go to CRM –> Portals –> Web Pages –> New


As you can see, I have created a Web Page with template as Blank Page. Notice carefully that I have not set any entity form or entity list. This is because I am going to set those up dynamically depending on conditions.

Now login to the portals as admin contact and then include this web page in the Navigation.



Clicking on Loan Status gives an empty page because we are using the blank page template.

2. Setting up of Entity forms

Now to mock up the previous scenario, I have created two forms for account entity.

  • Loan Request Admin Form
  • Loan Request General


Create Two entity Forms in CRM based on these two forms.



3. Set up the forms Dynamically using Liquid.

Login to the portal using the admin contact and edit the Copy content of the Loan Status Page.


Enter the below Liquid Code in the editor.


Pasting the same code inline







The code is pretty simple. All it is doing is checking if the logged in portal contact is a power contact, then load the admin form. The general form is always loaded by default

Save it and now when you refresh the page, you would see the power user is able to see both the forms. Using the same construct, you render forms dynamically based on business conditions.

–Dynamically show/ hide entity forms in Dynamics 365 portals (ADX portals) depending on Business Logic using Liquid templates

Dynamics 365 (ADX) portal Show the top record from an entity view based using query filters in Dynamics 365 portals (ADX portals)

This is one more of my recent articles on ADX portals and this blog I am going to write on how to select the topmost record from an entity view using query filters.

Can’t depict the exact business scenario here but probably an example will get you started on how to get started with the query filters.

So let’s take an example here – What if someone asks you to print the the details of an employee with the highest salary from a specific view?

Let’s assume there we are leveraging the Contact table in CRM for Employee.

And the view I select is “Active Contacts” view.

Schema name of the salary field in the contact table – “new_salary”

In CRM, I created an Entity List called “Contact List” with a view “Active Contacts”


In the Portal side, in the Copy field just paste the below code.

Employee Name: },  Salary: }

The code is pretty simple. I load the entity view “Active Contacts” from the Entity List “Contact List” that I created in the previous step.

The important part is the code highlighted in yellow.

I just take the output of view and then order by salary descending (default order is ascending) and in the next line I just take the top record from there.

That’s all. I now just print out the Employee Name and the Salary of the employee. Not a real world example but probably helps you get the idea.


Create a HTML table dynamically from Entity List in Dynamics 365 portals (ADX portals)

After my recent posts on ADX portal, I came across a question on how to dynamically load an entity list in a web-page. For people knowing on how to use Liquid, basically the user was trying to render an entity list using the below syntax.



Unfortunately the entire entity list will not render like this. Rather if the entitylist loads successfully, it would execute anything within the entity list block.

So if I write something like below.


Entity list Loaded successfully


It would render “Entity List Loaded Successfully”

So is there no way. Off-course, where there is will, there is a way.

So I decided to try the below approach. Please note that code does not give the entire solution as you would need lot of styling to achieve the final goal but this can definitely get you started.

Step 1: Create a web-template

The first step is to create a web-template. Since I would creating the HTML table dynamically, I require a web-template.

Go to CRM –> Portals –> Web templates

Select New and then the new template screen would be presented. Below is the screenshot of my template.


I have named id “Custom Grid Template”. Don’t worry about the source. Here it is below for full reference.







The code covers most of the scenarios that you are going to need to render a HTML table from EntityView or EntityList. Let’s run through all the highlighted parts.

  • First an entitylist is loaded with the statement :
  • Second I take the default entityview of the entitylist. You can load the view with a specific name as well.
  • In third highlighted section, I write code to create the header.


  • Pretty simple isn’t it. In the next highlighted rows, I first traverse through the existing rows of the view and find the attribute for each column using
  • The interesting part is checking for the attribute type


Till this point, I was OK. However to be honest, I was completely stuck on how to identify EntityReference and picklist.

And finally this came my to rescue.

A bit nerdy but awesome it is.

Step 2: Load the web template dynamically in the webpage

Below is the code for the same.


And once you are done, below is the HTML table rendered dynamically. Off-course it is raw, but with a bit of styling it can look great.



Please visit orignal page

Show the top record from an entity view based using query filters in Dynamics 365 portals (ADX portals)