Category Archives: Blog
Track an Entity record form opening / retrieve activity by system user in Dynamics 365 CRM
If you want to track a user who has opened records of any specific entity then you are on the right blog because today we are going to see how we can do simple customization to track the user activity of who has open which record for how many times. Step 1: Create an Entity to track the log of retrieve activity of the registered entity. Following are fields in the entity to track user activity tracking activity 1. Name — Logical name of Retrieved Entity. 2. Record Id — Record Id of that Retrieved Entity. 3. No of Time Retrieved — Stored number of times a user has retrieved that specific record. Step 2: Create a Plugin to create a Retrieved Log record The record will be created or updated whenever the user opens the entity form to check details and the following is code for the same. Explanation: 1. When the plugin will trigger it will check if the retrieved log of that record is already present or not. 2. If retrieve records is not present it will simply create a log record with the following details a. Name — Type of records which user has opened [Entity] b. Record Id — Record Id of record which user has opened c. User — which the user has opened the record. d. Count = 1 3. If the retrieved record is already existing in the system then it will increment the count of the number of times a user has retrieved that record by 1 so that we can track how many times the same user has open that specific record. Step 3: Register the Plugin on Retrieve of Entity on entities for which you want to add tracking. Retrieve: It will trigger whenever an entity form is open by any user. While registering the new step for the plugin please make sure that Run in User’s Context must be “Calling User” so that we can have a track that which user has opened which record. Note: All security roles which are given to the user should have read, create and update right to “Entity Tracker” Entity. Also, the stage of execution of Plugin and execution mode must be “PostValidation” and “Asynchronous” so that it will not affect any system jobs and it can run in the background process. If you want to track a retrieve activity of opportunity then you just need to register the new step and select Primary Entity as an opportunity as I have already done for Account and Contact. Now, your system is ready to track the user’s entity retrieve activities, and you will see the following records: Using the above record you can create any type of custom charts and put them in your admin dashboard or you can create a Power BI report to track activity. I hope this helps you, if yes please like the blog. And, the next blog will be on the dashboard & charts based on our Entity Tracker records so stay tuned for that!
Share Story :
Sort records in Cloud flows
In this blog we will see how we can sort list records in Cloud flows Lets say we want to retrieve all accounts on created by ascending. There are two ways to sort list of records in Cloud flows Order By – Fetch Xml – Order By – Use List Records step in Common Data Service Connector where all you need to specify is field schema name and Order (Asc/ Desc ) Syntax – Schema_Name asc/desc 2. Fetch XML We can use Fetch XML to retrieve only the attribute that you need based on Condition that can be easily added using advanced find. While adding condition we can specify the order in Fetch XML 1. Click on Configure Sorting 2. Add Sorting – Sort By -> Ascending Order and then download Fetch XML. Below is the downloaded Fetch XML – 3. Use this Fetch XML in Flow Hope this helps !
Share Story :
Send Email to not resolved Email Ids from Workflow/Cloud flows
Introduction: We might have a requirement to send emails from Workflow/cloud flows to Ids that cannot be resolved as Contacts, Accounts, Users in CRM. Solution: We need to make changes to system settings to allow messages to unresolved recipients In case of Workflow, directly add email address in the field( It will show ? as it is not resolved address) For Cloud flow, in create a new email record, click on “Switch to Input entire array”, populate the email in addressused field. This will let you send emails to an unresolved email address.
Share Story :
How to manage OneDrive using Administrative Templates in Intune
Administrative Templates are responsible to facilitate the management of registry based policies that allows to configure many settings on Windows machine. With the availability of these Administrative Templates in Intune for Windows 10 it is helping Administrators to easily manage applications on Windows 10 or later devices using device configuration profiles. Profiles in Intune lets you configure settings and then push them to the devices in an Organization. In this article, we will see how to configure an Administrative Template for OneDrive so that the settings are pushed to the enrolled devices and provide below features. Silently Sign in users to the OneDrive Sync client. Silently move Windows known folder to OneDrive Set File on-Demand states. Pre-Requisites: Devices must be Joined to Azure AD. If you have on-premises environment that uses AD, you can enable Hybrid AD Join. Step 1: Login to Microsoft Endpoint Manager Admin Center (endpoint.microsoft.com). Under Devices, go to Configuration Profiles and then click Create Profile. Select Windows 10 and later as Platform and Profile will be Administrative Template. Click Create. Enter a Name for the Profile and optionally a Description. Click Next. Under Computer Configuration, select OneDrive and then select the settings you want to configure. In our instance, we will configure the first setting which is Silently signed-in users on to the OneDrive Sync client. Second setting is to silently move the windows known folders to OneDrive. In this case the known folders which is Documents, Desktop and Pictures will be automatically get synced with the OneDrive. Note: Some configuration required Tenant ID which you get from portal.azure.com > Azure Active Directory. Third setting is to Use files on-demand. Files on-demand allows you to access all your files stored in the cloud using File Explorer without having to sync them directly and storage space on your device. Similarly, there are various other setting which can be configured. Step 2: Once the settings are configured, click Next and go to Assignments. Under Assignments, you need to select a Group, if you want to assign this profile to a specific set of people. You may also choose All users or All Devices. Once selected, click Next, Review and create the Profile. With the help of these Administrative Templates, Administrators can easily manage the Applications and push the settings to all the Users and Devices.
Share Story :
Handling Pagination in Logic App for JSON payloads having Linked
This blog will guide you through how the paginated data from API’s can be handled and Processed in Azure Logic App.
Share Story :
D365 FO: Different ways to deploy SSRS Reports
There are two ways to deploy the SSRS reports in D365 for finance and operation. The first choice would be to deploy the report directly from Visual Studio. Open the Build menu, click Deploy. Alternatively, in Solution Explorer, right-click the report project and then click Deploy. In Solution Explorer, right-click the report and then click Deploy Lastly, we can deploy the reports using PowerShell. Open Windows PowerShell in Admin mode and execute the below commands as per requirement. For deploying all SSRS reportsK:\AosService\PackagesLocalDirectory\Plugins\AxReportVmRoleStartupTask\DeployAllReportsToSSRS.ps1 -PackageInstallLocation “K:\AosService\PackagesLocalDirectory” For deploying the specific reportK:\AosService\PackagesLocalDirectory\Plugins\AxReportVmRoleStartupTask\DeployAllReportsToSSRS.ps1 -Module ApplicationSuite -ReportName <ReportName> -PackageInstallLocation “K:\AosService\PackagesLocalDirectory”(Replace <ReportName> with required report name such as RetailLabel.Report or *Retail* – this will deploy all reports containing ‘Retail’ in report name)
Share Story :
Create a Custom Dropdown Control in Canvas PowerApps
As we know that a Standard Dropdown control do not have enough features and has limited properties to modify. Hence I have created a custom dropdown menu. Some drawbacks in Standard Dropdown,1. It shows only 1 particular attribute as value. Example: “Name”2. If multiple records of same name exist, then you cannot differentiate them. This is Custom Dropdown I have created, Steps to make the custom dropdown menu Step 1. Insert a ‘Text Input’ and ‘Horizontal Gallery’ and set height of gallery of your desired height also change Template Size according to fields added into a row. (As I have added only Name, Phone and Image) Step 2: Add an Icon ‘Down Arrow’ at the right of ‘Text Input’ and change property. onSelect = UpdateContext({showDropdown: !showDropdown}) //Condition to show/hide the CustomDropdown (Gallery). Step 3: Property to be changed.‘Text Input’ changes below, Default = textVal //It’s a Variable Fill = // Anything you feel suitable, I used “RGBA(230, 230, 230, 1)” Height and Text Size = // Anything you feel suitable. onChange = UpdateContext({showDropdown: !IsBlank(Self.Text)}) // Condition to show/hide the CustomDropdown (Gallery). ‘Gallery’ changes below, Items = Search(Accounts, TextInput.Text, “name”) // Filter Parameter by text. showScrollBar = false TemplateFill = // Anything you feel suitable, I used “RGBA(255, 255, 255, 1)” TemplatePadding = 10 TemplateSize = // As per your contents in a row Visible = showDropdown //It’s a Variable Step 4: To add functionality of basic dropdown on selection.Add a button to of size equal to template Size (i.e: cover entire record section) and change properties given below, onSelect = UpdateContext({textval: ThisItem.’Account Name’}) //Defined variable HoverFill = //Anything you feel suitable, I used “ColorFade(RGBA(240,240,240, 0.3), -10%)” Step 5: Custom Dropdown complete. You will have something like this, Note: For additional responsiveness in design, change X, Y, Height, Width. Hope this helps!
Share Story :
Autosave quick create a form record on fields change and open the created record
Requirement: The user will create the record from the Quick Create and on change of specific field, the record should automatically save. Whenever the record will be saved it should open the created record. In our scenario, we are going to use the Account Entity. When the user will enter the main phone data in the Account Quick Create Form, the record will automatically save and it will open the created account record. Steps: Go to Default Solution or your customization solution and Open the Quick Create Form from Account Entity 2. Click on the Form Properties to edit the form properties of Account Quick Create Form and add the script on the form. 3. Click on the +New button to add the JavasScript web resources on the form so that you can use the script function on Form Events 4. If you wanted to use an existing Web Resource then you add it or else create new by click on new 5. Create a new Script and add it on form 6. Now, we need to add the event list and bind the calling function to it. To do it click on the + New on Event Listener of Form Properties. Note: Please don’t forget to pass the execution context as the first parameter to the function. 7. We will use formContext.data.save() function to get the created record’s GUID and open entity record using that GUID. Following is code for your reference: 8. Code Explanation: a. quickCreateonSave is a function that is trigger on change of Main phone fields of Account Quick Create. b. When the function is triggered we are using formcontext.data.save to save the save so that we can get the GUID of the recently created record. c. On formcontext.data.save() we can assign two functions — on success and failure as parameter to .then() [Reference] d. On Success, the function will return the following response where you can get the entityType, entity id, and name of the record. e. After getting the entity id and entity type, we can use the open form to open the record as mentioned in the Code. 9. Publish all the customization that you have done on the Account Entity Demo: I hope it helps you guys!!
Share Story :
D365FO – HTTP Error 503. The service is unavailable
Introduction: In this blog, we will see how to resolve HTTP Error 503 – The service is unavailable in Microsoft Dynamics 365 Finance and Operations Details: For resolving these kinds of errors, we have 2 solutions as of now. One is to do from the front end that is LCS and the second is to do from the back-end that is from Visual Studio From LCS: Reset the IIS from the LCS. Steps: 1. Go to LCS, login 2. Select the respective project, full details 3. Go to Maintain -> Restart service 4. Select IIS and confirm it 5. Wait till the service is being restarted From Visual Studio: From the back-end, open the VM and follow the below steps: 1. Login to VM 2. Open the Visual Studio 3. Go to Dynamics 365 tab 4. Click on Restart IIS Express That’s it. Build the project and go to the frontend and check the output how it looks like. Thanks for reading and stay connected with us for more updates!!! Jagdish Solanki | Senior Technical Consultant | CloudFronts Business Empowering Solutions Team “Solving Complex Business Challenges with Microsoft Dynamics 365 & Power Platform”
Share Story :
Filter Regarding using JavaScript
Introduction: In this blog we will learn how to filter regarding based on another option set field. Also, we shall understand how we can set the default view for regarding. Solution: The below script will run on field change of “Type”, this is the option set based on which the regarding will be filtered. Regarding: function (execContext) { var formContext = execContext.getFormContext(); if (formContext.getAttribute(“type”).getValue() != null) { Type = formContext.getAttribute(“type”).getValue(); switch (Type) { case 1: formContext.getControl(“regardingobjectid”).setEntityTypes([“contact”]); formContext.getControl(“regardingobjectid”).setDefaultView(“{00000ABC-0000-0000-00BG-000010000147}”); break; case 2: formContext.getControl(“regardingobjectid”).setEntityTypes([“quote”]); formContext.getControl(“regardingobjectid”).setDefaultView(“{00000ABC-0000-0000-00BG-000010000147}”); break; } } } Here, the Entity Type- will be entity you want to show in regarding and default view will be the view whose id is set in this script. Output:
