How to add/ edit/ remove subjects in CRM?

Subjects field is a commonly used in Products, Cases, Sales Literature and Articles. Using this, we can organize them in a Tree structure.

Follow the below steps to Add/ Edit/ Remove subjects.

Step 1: Go to Settings -> Business Management -> Subjects

Settings - Subjects - Business Management Setting

Step 2: Select the required Subject. Add/ Edit/ Remove subjects using Common Tasks Area.

In this below screen shot, I have selected Subject Products and added Product 1 and Product 2.

Subject Common Tasks Area

Step 3: Open New Case/ Articles record to see the updated Subjects.

Case Subject

Advertisements

Unified Service Desk 3.0.0 released

You can download Unified Service Desk 3.0.0 Version Package Deployer and Executables from the below links,

Name Size Download Link Description
Dynamics365-USD-3.0.0.859-PackageDeployer 85.4 MB Click here USD Package Deployer to install solution components in CRM
Dynamics365-USD-3.0.0.859-amd64 88.9 MB Click here 64 bit USD client
Dynamics365-USD-3.0.0.859-i386 88.9 MB Click here 32 bit USD Client

Click here to see “What’s new in Unified Service Desk 3.0.0

OnOrAfter Vs Greater than for DateTime field in CRM

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.

Retrieve 5000+ records using FetchXML and Query Expression

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>";

Note: Do not forget to append {0} in the first line of the formatted FetchXML.

How to Call Method?

EntityCollection contactCollection = RetrieveAllRecordsUsingFetchXML(_orgService, fetchXML);
Inspired from MS Dynamics CRM – Tips from a Developer Blog

Retrieve 5000+ entity records using Query Expression

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;
 }

How to Customize Lookup Views in CRM?

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.

Customize Lookup - Example

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.

Customize Lookup - Example - Account Lookup View

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.

Customize Lookup - Example - Account Lookup View with Ticker Symbol

Note: If the Account record has no data for Ticker Symbol, it will be displayed as Empty.

Hope you learned a new thing today :):):)