Dynamics CRM Archives - Page 4 of 15 - - Page 4

Category Archives: Dynamics CRM

Button missing from ribbon Dynamics CRM (Field Service Work Orders)

Recently I faced issues with some of our custom and Out of the Box ribbon buttons disappearing for example look at the snapshot below. For any selected service order I was not able to see the Run Flow button which runs on-demand workflows and Power Automate Flow (and a few custom ribbon buttons as well). I investigated and found out that this happens because of a field service setting called “Show Simplified Work Order Command”. As per the document – https://learn.microsoft.com/en-us/dynamics365/field-service/configure-default-settings This setting influences the command bar on work order records and lists. By default, this field is set to Yes, which shows only the most relevant commands for work orders. The following commands will be hidden from the form: deactivate, check access, process, add to queue, queue item details, assign, share, email a link, flow, Word templates. The following commands will be hidden from the list view when no records are selected: email a link, flow, import from Excel. The following commands will be hidden from the list view when a record is selected: activate, deactivate, email a link, add to queue, flow, Word templates, Excel templates. When set to No, all commands are shown. To turn it off in your field service app go to settings from the change area and select Field Service Settings, under field service setting turn off Show Simplified Work Order Commands to No. Now we can see our run flow button along with a couple of other buttons. I hope this helps!

Share Story :

Exploring XRM Toolbox Part 1

In this blog, we will explore the use of the XrmToolBox and different tools present in the store. XrmToolBox is free to use tool that connects with the Dataverse environment and provide you with various tools that allow performing heavy management task very easily. Many developers have contributed to XrmToolBox Store by creating a tool/library which is beneficial in the regular development and management work of Dynamics 365 CRM Consultants/Developers. You can find the Installation and setup guidance from a website that you can follow as we directly going to start exploring different types of tools available. Home Page: https://www.xrmtoolbox.com/ Connection Setup with Dataverse Environment: https://www.xrmtoolbox.com/documentation/for-users/manage-connections/ Tool #1: “Security Role Sync” created by Bharath Sheelam The tool is created to sync the security roles between two users. I have two users present in the dataverse environment and I have a requirement to sync roles from one user to another. If we need to sync the roles from “Amit Prajapati” to “CRM Admin” we need to select “Amit Prajapati” in Source and “CRM Admin” in Destination. Once you select the user, you need to click on Sync Security roles it will start syncing and notify you once it is completed. Result: Amit Prajapati has below roles: Before Sync Roles on CRM Developer Account After Sync Roles on CRM Developer Account Use Case and Benefits: Developer work can be minimized using this tool as they might be having multiple users to sync the roles and debug the security permission. Remove the manual efforts to check for the reference user’s security permission and apply it to the required user. Let’s say you have to replicate the security permission from User 1 to User 2 and without this tool you need to open the security permission of User 1 and note it down then only replicate the same permission to User 2 If you have a scenario where functionality is working for one user and not working for another user due and you are getting a security permission error. You can use this tool and sync the security roles considering they should be belonging to the same security based on business requirements. Tool #2 “Security Debugger” created by Mark Carrington This tool is very useful, and it helps you to find the solution to all permission-related issues. It will provide you with the details of which security roles are missing considering you have a security permission error log with you which is required for this tool.

Share Story :

Dynamically filter required Fields/Columns from a Record’s BPF and Form and apply Requirement to those fields

Hi Everyone, Let me explain this topic with an example of a scenario that you might encounter. I’ll walk you through how to complete this scenario in a concise manner below. Use Case Let’s say you have a Table (Entity) with or without multiple Business Process Flows (BPFs) that include some required Fields and even on the Form. Even if the required fields are empty and you want to change a field or flag within the form and save the record. We must disable all required Fields on the Form and then re-enable the requirements for those fields. We can do this with some simple JavaScript code. Step 1: Find a trigger point for your JS function to be called.It can be done with a Ribbon Button or by manually changing a Field. Find the code you’ll need below. I’ll be using Ribbon Button to trigger my JS Function. Quick Tip: You cannot get any Attribute Value of a Field residing in BPF directly. You need to get the entire Control of the Field and then call its attribute values. Step 2: Register your JS function onto your Ribbon Workbench or OnChange of any Field on Form. Since I called my function using Ribbon Button, I used “OpportunityForm.executeMain” with Parameters; “CRM Parameter -> Primary Control“ If you’re calling the JS using Field OnChange, then register the function as “OpportunityForm.executeMain” and do pass ‘executionContext‘. In this case, your part of the script will change as below (use this if you use JS on your Form only) OUTPUT This is how all fields will have no requirement on the Form. I took this output before re-enabling the requirement level for the fields. That’s all, I hope this helped you

Share Story :

Make form read-only using JavaScript 

Posted On September 23, 2022 by Richie Jacob Posted in Tagged in ,

One way to lock down a form is through JavaScript. Let’s go through how to do this by looking at the code. var formCustomizations = { disableForm: function (executionContext) { let formContext = executionContext.getFormContext(); let formControls = formContext.ui.controls; formControls.forEach(element => { if (element.getName() != “” && element.getName() != null) { element.setDisabled(true); } }); } } Here when the JavaScript Function Is called and the execution parameter is passed, the user can see the desired output. formContext.ui.controls; Provides the properties and methods to retrieve information about the user interface (UI) controls for several sub-components of the form. formControls.forEach(element => { if (element.getName() != “” && element.getName() != null) { element.setDisabled(true);} Here the forEach loop will traverse and see if there are any fields that are not blank and the field value is not null, then set all that fields to read only on that form. Hope this helps!

Share Story :

Cancel the running flows with JavaScript code

We will look at how we can use JavaScript to cancel flows that are running without canceling each flow manually. To do this, follow the steps below. Let’s look at a scenario where we are seeing the flows that are in a running state and are not terminating. Click on All runs, this navigates you to all flow runs view. When we are in the All runs view, we need to open the developer console in the browser. The developer console can be opened by clicking F12 (or holding fn and F12) on Windows. Or by right-clicking on the screen and clicking Inspect. In the developer console, navigate to the Console pane. To clear the console window, click CTRL + L. The console pane is where we will add the JavaScript code that will cancel the running flows. As can be seen in the next step. // Copy this first and run it in the console var jq = document.createElement(‘script’); jq.src=”https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js”; document.getElementsByTagName(‘head’)[0].appendChild(jq); // … give time for script to load, then type (or see below for non wait option) jQuery.noConflict() //Paste the same again var jq = document.createElement(‘script’); jq.src=”https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js”; document.getElementsByTagName(‘head’)[0].appendChild(jq); // … give time for script to load, then type (or see below for non wait option) jQuery.noConflict() // Then copy this in the console to start the cancelation of the flows. confirm = function () {return true;}; setInterval(function () { $(“.fl-StatusInCell:contains(‘Running’)”).parent().parent().find(‘.ms-DetailsRow-cell’).last().click(); $(‘button[name=”Cancel”]’).click(); },5000); Click the running code after the code is implemented in the console, and the output will be seen below Hope this Helps!

Share Story :

Switching of Forms using Option Set field in Javascript

Use Case – To Switch form based on the value selected from option set field. Steps – 1. We have a Option Set field – “Lead Type“ Based on the Option selected – the form will switch For example – “PMO Member” – On change of the option, it will switch to PMO Member Form “HR” – On change of the option, it will switch to HR Form 2. To get the current form Guid use the following in the console- 3. Below JavaScript Code- Hope this helps!!

Share Story :

Switch BPF in Dynamics 365 using JavaScript

In today’s blog, we will cover how to change the BPF using JavaScript in the unified interface when the form loads based on a custom field Lead Type on the Lead form. Let’s take a closer look! Steps – In the example below, we have a new option set field called Lead Type with values of TAB Member and TBO. When the Lead Type has a value of TAB Member, update the business process flow to the TAB Member BPF and when the value is TBO, update the business process flow to TBO BPF. 2. Create two separate BPFs for the required entity. In this case, we created two separate BPFs for the Lead entity. 3.  From each BPF, grab the record GUID using the console. 4. JavaScript Code- Results – Hope this helps!!

Share Story :

Quick Tip: Language Translation on Custom PowerApps Page in Model Driven Apps

Hi Everyone, If you are using Custom Pages in your Model Driven App and would like to have multiple languages as per User’s Personal settings? Here’s a quick helpful method for Custom Pages Step 1: Let’s start by creating a Custom Page Go to PowerApps Maker Studio, in your selected environment outside or inside a solution. Add new Custom Page Step 2: Fill your app as per requirement. I’ll just keep it basic. Note: OOTB Tables/Entities will show translated values except custom text/tooltip/custom tables, etc. Below, for my custom Title Label. I have used Language() function to detect the User’s language set in Personal Settings applied on Browser Level. Step 3: Save, Add and Publish the Page on Site Map (Edit in Preview) section. Reload your Model Driven App to see the effect User’s Language set as English User’s Language set as Spanish Select Spanish in Personal Settings That’s how simple it is to set Language in your Custom Page. Note: If you are working with Custom Entities, BPFs you need to add translation for the Language in Data verse manually. Please follow the steps mentioned in this Blog: Enable language translation on Custom solutions in Dynamics CRM. Hope this helps 🙂

Share Story :

Send a message/notification on Microsoft Teams as soon as an Opportunity is created in Dynamics 365 via Azure Logic Apps.

In this blog we will see the steps in order to send a automated message via Teams as soon as an Opportunity is created in Microsoft Dynamics 365. Step 1: Go to portal.azure.com and select the Azure Logic App Resource. Step 2: Enter all the details such as the Name, Resource Group, Subscription, Region, etc. required while creating a Logic App. Step 3: Select the Dynamics 365 trigger When a record is updated. Step 4: Select Opportunities entity after setting by the Dynamics 365 CRM connection Step 5: Set the data refresh time as required. Step 6: Select the IF action in the next step and the condition would be status_label=won for true. Step 7: Inside True Block select Post a message in a chat or channel option. You can also handle the condition for False block, but in this case we can leave it blank. Step 8: You can post this message in a Group, Channel or send it as a Personal chat. Step 10: Wait for the trigger successful notification. Step 11: Go to Dynamics 365 CRM and navigate to opportunities entity. Step 12: Open a test opportunity or create one if doesn’t exist and close the opportunity as won. Step 13: As soon as you closed this opportunity you may have received the following message. Hence in this blog we saw how we can send messages on MS Teams using Azure Logic Apps on triggering certain conditions. Hope this helped!

Share Story :

Enable language translation on Custom solutions in Dynamics CRM

In this blog, we’ll see how to apply language translation on custom entities, model driven apps and business process flows in Dynamics CRM Step 1- Go to Settings -> Administration->Languages. In Language settings select the required language and click on apply. Step 2- Include all the required components into the solution For example- Custom Entities Model Driven App- For example – Sales Hub Business Process Flow (BPF)- Include the BPF entity as well as process Step 3- Select the solution and click on Export Translation to export the translations to an archived file. Step 4- Extract the contents of the downloaded CrmTranslations_<solutionname>_1_0.zip. This will extract two files. Step 5- After extracting the file, open the CrmTranslations.xml file in excel. You will find 3 sheets in it. Open Localized Labels file, you will find columns for each of the languages you have deployed. Fill in the translations for each language options available. Step 6- Zip the file again and re-import the translations to the same solution using the Import translations button. Step 7- After successful import, click on publish all customizations. Step 8- Go to settings ->Personalization Settings -> Languages. Select the language you wanted to translate into. Output- Hope this helps!!

Share Story :

SEARCH BLOGS:

FOLLOW CLOUDFRONTS BLOG :


Secured By miniOrange