Click here and download “Microsoft Dynamics 365 Report Authoring Extension”
To create a simple FetchXML report, follow my post FetchXML Report.
Click here and download “Microsoft Dynamics 365 Report Authoring Extension”
To create a simple FetchXML report, follow my post FetchXML Report.
OnOrAfter:
This operator will consider Only Date but not Time to filter records.
Greater than:
This operator will consider both Date and Time.
By default both takes Time as 12:00 AM, if we don’t give any time and fetch records.

Click here to have look at Microsoft eBooks.
In my previous post, explained how to Retrieve 5000+ entity records using Query Expression,
In this post, will explain how to Retrieve 5000+ entity records using FetchXML and Query Expression.
Example:Â Retrieve All contact records where MobilePhone data is not null.
use below method,
public static EntityCollection RetrieveAllRecordsUsingFetchXML(IOrganizationService service, string fetchXML)
{
var moreRecords = false;
int page = 1;
var cookie = string.Empty;
var entityCollection = new EntityCollection();
do
{
var xml = string.Format(fetchXML, cookie);
var collection = service.RetrieveMultiple(new FetchExpression(xml));
if (collection.Entities.Count > 0) entityCollection.Entities.AddRange(collection.Entities);
moreRecords = collection.MoreRecords;
if (moreRecords)
{
page++;
cookie = string.Format("paging-cookie='{0}' page='{1}'", System.Security.SecurityElement.Escape(collection.PagingCookie), page);
}
Console.WriteLine(entityCollection.Entities.Count);
} while (moreRecords);
return entityCollection;
}
Get the required FetchXML from CRM Advanced Find and format using FetchXML Formatter Online.
For the example stated above, required FetchXML is as follows,
string fetchXML = "<fetch version='1.0' output-format='xml-platform' mapping='logical' distinct='false' {0}>" +
" <entity name='contact'>" +
" <attribute name='fullname' />" +
" <attribute name='mobilephone' />" +
" <attribute name='contactid' />" +
" <order attribute='fullname' descending='false' />" +
" <filter type='and'>" +
" <condition attribute='mobilephone' operator='not-null' />" +
" </filter>" +
" </entity>" +
"</fetch>";
How to Call Method?
EntityCollection contactCollection = RetrieveAllRecordsUsingFetchXML(_orgService, fetchXML);
Example: Retrieve All contact records where MobilePhone data is not null.
public EntityCollection RetrieveAllContactEntityRecords(IOrganizationService _service) {
// Declarations
var contactFinalEntityCollection = new EntityCollection();
EntityCollection contactEntityCollection = new EntityCollection();
int pageNumber = 1;
bool moreRecords = true;
// Retrive Contact Records using CRM Paging.
while (moreRecords)
{
var queryExpression = new QueryExpression()
{
Distinct = false,
EntityName = "contact",
ColumnSet = new ColumnSet(true),
Criteria = new FilterExpression
{
FilterOperator = LogicalOperator.And,
Conditions =
{
new ConditionExpression("mobilephone", ConditionOperator.NotNull)
}
},
Orders =
{
new OrderExpression { AttributeName = "createdon", OrderType = OrderType.Descending }
},
PageInfo =
{
Count = 5000,
PagingCookie = (pageNumber == 1) ? null : contactEntityCollection.PagingCookie,
PageNumber = pageNumber++
}
};
contactEntityCollection = _service.RetrieveMultiple(queryExpression);
if (contactEntityCollection.Entities.Count > 0)
{
contactFinalEntityCollection.Entities.AddRange(contactEntityCollection.Entities);
}
moreRecords = contactEntityCollection.MoreRecords;
}
return contactFinalEntityCollection;
}
Will see how to customize a Lookup View with an example.
Example:
Customer requirement is to have “Ticker Symbol” instead of “Phone” in Customer Lookup for Account in Case Entity.

As per the above screenshot, can see Account Name, Email and Phone.
Now, we have to replace Phone with Ticker Symbol.
Please follow the below steps to do so,
Step 1: Go to Account Entity Customization -> Views ->Â Account Lookup View.
We can see the Account Name, Email and Phone in Out of the box View. Add Ticker Symbol after Email.
Note: As per the Order of First three columns, Lookup View displays.

Step 2:Â Save and Close the View. Publish the Account Entity Only.
Step 3: Open new Case Entity record and search for the required Account record in Customer Lookup to see the changes.

Note: If the Account record has no data for Ticker Symbol, it will be displayed as Empty.
Hope you learned a new thing today :):):)

Click here to download Setup Guide.
Recently updated CRM from 2016 Online to Dynamics 365, Users were unable to login Dynamics 365.

Tested the same User login with the same security roles in CRM 2013 and 2016 environments, not facing any login issue.
Finally found that in Dynamics 365, it is mandatory to have Organization Read Level permission on Organization Entity for a security role, and which is not mandatory in other CRM versions.

Issue resolved.
Hope this helps 🙂