Michael Philip's Blog

Writing about MS Tech with strong focus on Azure & CRM

Leave a comment

Dynamcis CRM Execute Sync Workflows In Order

Scenario & Problem:

I was performing an upgrade to CRM 2016 and one of the customer requirement was to convert all plugins to run time

workflows,multiple plugins were registered for the same event on the same entity by benefiting from execution order feature in

plugin which doesn’t exist in run time workflows.



let’s say you have 2 WFs,

  • configure the second to be called on demand

  • call it from the first after finalizing all the logic

Leave a comment

Connect To Dynamcis 365 Online using Power Shell


In this post I am going to show a basic example using CRM SDK through power shell to connect to CRM .

Power shell is so useful when you need to execute operations through SDK without Visual studio installed in your environment.

Code :


#navigate to SDK Folder

#execute script

#add crm snappin
Add-PSSnapin Microsoft.Xrm.Tooling.Connector

#Get Tool Alias
Set-Alias installUtil $env:windir\Microsoft.NET\Framework64\v4.0.30319\installutil.exe

#copy to gac
installUtil /u Microsoft.Xrm.Sdk.dll;

#Initialize connection
$CRMConn =Get-CrmConnection –ConnectionString “Url=https://MOQCRM20.crm6.dynamics.com/; Username=###; Password=###; authtype=Office365”

#Get Organization service proxy
$orgService=$CRMConn.OrganizationServiceProxy ;

#construct query
$query=”<fetch mapping=’logical’ distinct=’false’ aggregate=’true’>
<entity name=’account’>
<attribute name=’account’ alias=’recordcount’ aggregate=’count’/>

#Create Query expression

$queryExp = New-Object -TypeName Microsoft.Xrm.Sdk.Query.FetchExpression -ArgumentList $query ;

#Get Results

#Extract Count

Write-Host $countItem.Value

Leave a comment

Dynamcis 365 – Override Lookup view using Java script


I have encountered some scenarios  in which I needed to override lookup view columns or apply some filters on the results depending on dynamics conditions at run time on CRM form.

In order to do that , add the following piece of code in the on load event

The following example filters results set no a specific case type


var viewId = “{00000000-0000-0000-0000-000000000001}”;

//add the entity name
var entityName = “incident”;

// add the view display name
var viewDisplayName = “Problem Cases”;

var fetchXml = “<fetch version=’1.0′ output-format=’xml-platform’ mapping=’logical’ distinct=’false’>” +
“<entity name=’incident’>” +
” <attribute name=’title’ />” +
“<attribute name=’customerid’ />” +
“<attribute name=’incidentid’ />” +
“<order attribute=’title’ descending=’false’ />” +
“<filter type=’and’>” +
“<condition attribute=’bps_type’ operator=’eq’ value=’200000005′ />” +
” </filter>” +
” </entity>” +

var layoutXml = “<grid name=’resultset’ object=’1′ jump=’productid’ select=’1′ icon=’1′ preview=’1′>” +
“<row name=’result’ id=’incidentid’>” +
“<cell name=’title’ width=’150′ />” +
“<cell name=’customerid’ width=’150′ />” +
“</row>” +

Xrm.Page.getControl(“parentcaseid”).addCustomView(viewId, entityName, viewDisplayName, fetchXml, layoutXml, true);

Leave a comment

Connect to Dynamics 365 using C# SDK


I am going to show  in a few steps how to create an organization service proxy for dynamics 365 .

Steps :

  • Create a new project in visual studio
  • Add nuget package :”Microsoft.CrmSdk.CoreAssemblies
    •  “Install-Package NuGet.CommandLine”
  • Add the following piece of code

CrmServiceClient conn = new CrmServiceClient(“Url=https://moqcrm20.crm6.dynamics.com/; Username=test; Password=test; authtype=Office365”);

// Cast the proxy client to the IOrganizationService interface.
var _orgService = (Microsoft.Xrm.Sdk.IOrganizationService)conn.OrganizationWebProxyClient != null ? (Microsoft.Xrm.Sdk.IOrganizationService)conn.OrganizationWebProxyClient : (Microsoft.Xrm.Sdk.IOrganizationService)conn.OrganizationServiceProxy;

Leave a comment

Quick View Form and sub grid Issue in Dynamics 365


Intro :

I encountered a problem while working with quick view forms having sub grids.

The quick view form is meant to display the account details upon selecting an account on lookup in custom entity form.


Quick view form has sub grid displaying related record to account such as cases and opportunities , the problem occurs whenever you change the select account , all the details are updated to reflect the new selected account except the sub grids .

 They keep displaying the related records to the old one.

Fix :

  1. Add on change event handler on the account lookup
  2. Include the following piece of code in your java script function

var quickViewControl = Xrm.Page.ui.quickForms.get(“your quick view form name”);
if (quickViewControl != undefined) {
if (quickViewControl.isLoaded()) {

1 Comment

Display Error , Warning , Info Notifications on form in CRM 2013/2015 Using Java Script

Hi ,

Notifications were first introduced in CRM 2013 as a new feature in the java script SDK.

The following line of code shows to display notification

Xrm.Page.ui.setFormNotification(message, level , Id)

Message : Text to be displayed

Level : ERROR ,INFO , WARNING (Will specify Icon)

Id : Identify notification for clearing it later,

Xrm.Page.ui.setFormNotification("INfo Message", "INFO", "Info1");

Error :
Xrm.Page.ui.setFormNotification("Error Message","ERROR", "Err1");

Warning :
Xrm.Page.ui.setFormNotification("Error Message","WARNING", "Warn1");

Clear notification by Id

Leave a comment

Trigger plugin on Action Execution in Dynamics CRM

Hi ,

I am going  to show in the following steps how to trigger plugin on Action execution in CRM 2013/2015


1) Create Action


2) Register plugin


3) Call Action

The following code will show how to call the action using C#

OrganizationRequest callActionRequest = new OrganizationRequest("qdrn_setcustomervip");

callActionRequest[“Target”] = new EntityReference(“contact”, {GUID});

OrganizationResponse callActionResponse = service.Execute(callActionRequest);

Leave a comment

Dynamics CRM Common Workflow Activities Library

Hi ,

You can now download the Common Workflow Activities Library and save time by not implementing components repeatedly in each project such as

  • Apply Routing Rules
  • Share Record With Team
  • Check If User is in Role
  • Check If User is in Team

Download Link : https://msdyncrmworkflowtools.codeplex.com/