Posts

Show user login details in a quickest and more flexible way

Image
You all might be aware of the CRM inbuilt  User Audit Access functionality , which shows user login access. I also proposed the same solution to my client, when he asked me about how to check user login date and time in CRM. But, he wanted a user-friendly and flexible way to access this data.  Problem with current inbuilt functionality :      1. Accessing Data                   To access the user login audit data, as a user I have to perform several steps. which is not the quickest or most convenient way. i.e.   Go to Advanced Settings >> Auditing >> Audit Summary View >> Filter Event Column with "User Access via Web".      2. No filter on User Record                     It shows the login data for all users. The filter is not available for the user record, which makes it hard ...

Create custom N to N relationship in Dynamics CRM

Image
Disclaimer:  It is recommended to use the existing OOB N: N relationship for an entity. The custom N: N relationship is only to be used for entities that do not support the N: N relationship. As the title suggests, in this blog we are going to discuss how to create a custom N: N relationship. The topic is divided into the following parts: 1. Need of custom N: N relationship. 2. Implementing custom N: N relationship. So, let's begin. 1. Need of custom N: N relationship         One day, I received a requirement to develop functionality where a user can add multiple users and contacts for appointments and phone calls, and later on, he can send notifications to selected contacts or users via mail. The approach was simple, to create an N: N relationship between appointment to user and contact and then add a subgrid on the form for each entity. But for activity entities, CRM does not allow you to create an N: N relationship.  Hence, a custom N: N relati...

Efficient way to check Logged In user's security role

Image
As a CRM developer, we all have developed functionality to check logged-in user's security roles. We used to get GUID of security role and then we have to fire a query to the server-side to get the role names. Thankfully Microsoft has slipped in an update to get the role names. Xrm.Utility.getGlobalContext().userSettings  has been updated with a new function called roles ,   which returns a collection of lookup objects containing the GUID and display name of each of the security roles assigned to the user and any security roles assigned to the team that the user is associated with. Let's take look at this with a scenario: I have to perform some functionality if the current user has  Sales Manager or Marketing Manager  role assigned to him. And here is the result: currentUserRoles object contains all the roles assigned to the logged In user and isValidUserRoles contains the result after filtering the currentUserRoles object with required roles. Click here for...

The optimized and efficient way to execute multiple API requests in one call

Image
As a developer, we have to optimize the code for better performance. Sometimes we have to make multiple API calls for different kinds of functional logic or validation on a single event, which leads to performance issues. Microsoft already has a feature called Batch Operations , but it involves a lot of code, and also the response we received is not in a JSON format. To overcome this we can use another API calling mechanism called fetch()  to execute multiple APIs. This method provides an easy, logical way to fetch resources asynchronously across the network. Let's take a look at this with an example. Here we have created an array of URLs called urls  which consist of two different API calls, the first API call to get owner details and the second API call will give the team details if a user is part of a particular team. Executing all APIs included in urls array. The responses for API will be received in the same order as an Array element. Here are the responses received:...