My Photo

Microsoft Dynamics 365

Official Blog for Microsoft Dynamics Functional and Technical Solutions....
Browsing Category " MSCRM 2016 "

Entity for Views in CRM based on View Ownership - SavedQuery and UserQuery Entity

There are 2 types of View in CRM entity based on View Ownership , which are stored in two different entities.

1)  Organisation or System View - stored in the View Entity (SavedQuery)
2)  Individual, personal or User/Team View - stored in the Saved View Entity (UserQuery)

Below is the Fetch XML that you can use to retrieve the Data of the entites

1)  Organisation or System View
<fetch top="5000" >
  <entity name="savedquery" >
    <attribute name="name" alias="ViewName" />
    <attribute name="createdbyname" alias="Owner" />
    <attribute name="description" alias="Description" />
    <attribute name="returnedtypecode" alias="returnCode" />
    <attribute name="fetchxml" alias="fetchXML" />

2)  Individual, personal or User/Team View
<fetch top="5000" >
  <entity name="userquery" >
    <attribute name="name" />
    <order attribute="name" descending="false" />
    <attribute name="ownerid" />
    <attribute name="modifiedon" />
    <attribute name="userqueryid" />

We can retrieve the data of these entries by C# also you can see the full code example here:

You can also use LINQ query for retrieving these view.

Happy CRMing 😊

Validation to accept only Numeric Character in MS CRM

Below script is a generic validation which will show for error if field is having anything except numeric value

function ValidateOnlyNumeric(context) {
    var fieldname = context.getEventSource().getName();
    var phone = Xrm.Page.getAttribute(fieldname).getValue();
    if (checkFormat(phone)) {
    } else {
        Xrm.Page.getControl(fieldname).setNotification("Please enter only numeric characters");
function checkFormat(phone) {
    var regex = /^\d+$/;
    if (regex.test(phone)) {
        return true;
    } else {
        return false;

To enable it for any field just register it on change of the required field with function name “ValidateOnlyNumeric” and check “Pass execution context as first parameter ” and save an publish it will start working

Hope it helps

Happy Coding 😊

Create and Send Email Message Activity from javascript using api D365 / MS CRM 2016

For Creating email message activity from java script MS CRM , you can update and use the below code according to your requirement. Here to show I have taken up a scenario to send a email to system user when a Quote is won.

Replace the User GUID for to and from user in "fromFieldIdSystemAdmin" and  "toPartyUsersId"

function CreateEmail() {
    var fromFieldIdSystemAdmin = "53536B3D-4D71-4FC2-857C-0477750A92BE"; //todo Email from User GUID
    var toPartyUsersId = ["53536B3D-4D71-4FC2-857C-0477750A92BE"]; //todo Email To user array
    var quoteId =;
    quoteId = quoteId.replace(/[{}]/g, "");
    var customerLookUp = Xrm.Page.getAttribute("customerid");
    var accountName = null;
    if (customerLookUp != null)
        accountName = customerLookUp.getValue()[0].name;
    var webapiPath = Xrm.Page.context.getClientUrl() + "/api/data/v8.0/emails";
    var email = {};
    email["regardingobjectid_quote@odata.bind"] = "/quotes(" + quoteId + ")"; //Regarding is quote
    email["subject"] = "Quote Sent ";
    email["description"] = "See attachment for the Quote that was set as Won";
    var parties = [];
    //ActivityParty (From)
    var sender = {};
    sender["partyid_systemuser@odata.bind"] = "/systemusers(" + fromFieldIdSystemAdmin + ")";
    sender["participationtypemask"] = 1; //From
    for (i = 0; i < toPartyUsersId.length; i++) {
        var receiver = {};
        receiver["partyid_systemuser@odata.bind"] = "/systemusers(" + toPartyUsersId[i] + ")";
        receiver["participationtypemask"] = 2; //To
    email["email_activity_parties"] = parties;
    var service = new XMLHttpRequest();"POST", webapiPath, false);
    service.setRequestHeader("Accept", "application/json");
    service.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    service.setRequestHeader("OData-MaxVersion", "4.0");
    service.setRequestHeader("OData-Version", "4.0");
    if (service.readyState == 4) {
        if (service.status == 204) {
            var uri = service.getResponseHeader("OData-EntityId");
            var regExp = /\(([^)]+)\)/;
            var matches = regExp.exec(uri);
            var emailGblId = matches[1];
        } else {


function SendEmail(emailGblId) {
    var parameters = {};
    parameters.IssueSend = true;
    var req = new XMLHttpRequest();"POST", Xrm.Page.context.getClientUrl() + "/api/data/v8.1/emails(" + emailGblId + ")/Microsoft.Dynamics.CRM.SendEmail", true);
    req.setRequestHeader("OData-MaxVersion", "4.0");
    req.setRequestHeader("OData-Version", "4.0");
    req.setRequestHeader("Accept", "application/json");
    req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
    req.onreadystatechange = function () {
        if (this.readyState === 4) {
            req.onreadystatechange = null;
            if (this.status === 200) {
                var results = JSON.parse(this.response);
            } else {

function successCallback() {
function errorCallback() {
Happy Coding 😊


CRM Rest Builder for Dynamics CRM D365 / MSCRM 2013, 2015, 2016

Navigate to the below URL and Download the latest version of the solution of CRM Rest Builder

For 2015 & 2016 & D365 use the v2.5.0.0 release
For 2011 & 2013 use the v1.5.0.0 release

1) CRM Rest Builder GIT Hub URL
2) CRM Rest Builder Drive  v2.5.0.0 , v1.5.0.0

And follow the below steps

Step 1 - Navigate to your Organisation Settings -> Solutions and click on Import Button

Step 2 - Click on to Browse Button

Step 3 - Navigate to the solution file previously downloaded and click on open and then click on Next

Step 4 - Click on to Import Button

Step 5 - After some time you will see the below success message

Step 6 - Now you will be able to see the CRM Rest Builder Button on the ribbon bar on solutions Click on it

And You are good to go with CRM Rest Builder

Happy CRMing 😊


Create Your First Plugin Dynamics MS CRM

For your first Plugin we will take a test scenario - on create of contact record our plugin will forcefully update its email address to "" and to achieve this you just need to follow the below steps.

There are two parts to successfully run a plugin in MSCRM

1) Create Your Plugin
2) Resister your plugin

Plugin Creation

Step 1 - Open Visual studio

Step 2 - Go to File - New - and Click on Project

Step 3 - A dialogue will appear, from left navigation panel select Class Library template in Visual C#  and Enter Project and Solution name and hit on OK Button

Step 4 - Visual studio will create and open a blank class library template.Right Click on Project and click on Add References option

Step 5 - Reference Manager dialogue will open.From left navigation panel go to Assemblies - Framework then select two references and click on OK button
2) System.ServiceModel

Step 6 -  Right Click on Project and again click on Add References option, then in Reference Manager dialogue from left navigation panel go to Browse - Click on Browse button then select two references
2) System.ServiceModel

Step 7 -  After Click on Browse button go to your sdk (downloaded from prerequisites) - bin, then select the following dlls files and click on add and then OK button
1) miscrosoft.xrm.client.dll
2) Microsoft.Xrm.Sdk.dll

Step 8 -  Open the class named Class.cs from solution explorer and modify the below code in it.
If your namespace name and class name is different then remember to verify and update it.

Code Snippet : 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Xrm.Sdk;

namespace My_First_Plugin
    public class Class1 : IPlugin     //{inherit the class Iplugin in your class}
        public void Execute(IServiceProvider serviceProvider)        //{add the execute method}
            // create context , service factory and service objects
            IPluginExecutionContext context = (IPluginExecutionContext)serviceProvider.GetService(typeof(Microsoft.Xrm.Sdk.IPluginExecutionContext));
            IOrganizationServiceFactory serviceFactory = (IOrganizationServiceFactory)serviceProvider.GetService(typeof(IOrganizationServiceFactory));
            IOrganizationService service = serviceFactory.CreateOrganizationService(context.UserId);

            //to enter  value in Email field in contact entity

            //create an object of predefined class Entity and pass entity name as its parameter
            Entity Object = new Entity("contact");   // in place of contact you can write schema name of entity on which you want to preform operations

            Object.Attributes.Add("emailaddress1", "");  //emailaddress1 is the schema name of the Email field in contact entity
             // is the value

            //to update the record service.Update(object of the entity)


After updating your code your code will look like this 

Step 9 -  Right click on Project and click on Properties

Step 10 -  Now, we have to create a key. Go to Signing - select the checkbox "Sign the assembly" and click on <New..> option 

Step 11 -  Enter any name you want for your Key and click on OK button

Step 12 -  Click on Save Button

Step 13 - Go to BUILD from ribbon menu and select Build Solution option

Will Update this thread Soon 

Happy Coding 😊