Setting Ribbon Icons on the Unified Interface in D365
So, since adoption of Unified Interface is growing, people are asking – “What happened to the Ribbon icons?”. Well, a simple answer to this is tweaking the implementation a little. Typically, you have custom icons on your classic Web UI that look like this – But the same looks like a puzzle piece in the Unified Interface – So, here’s what you need to do. Icons on the Unified Interface take SVG format. You’ll need to take you existing PNG Web Resources Creating SVG Icons Like most online services or applications, you can easily convert images to SVG. In this example, I’m using this online tool – https://www.online-convert.com/ Or you can try this too which I found quite a few people recommended – https://www.syncfusion.com/downloads/metrostudio For this example, I used https://convertio.co/png-svg/ And I got my converted SVG document downloaded. Now, create a new Web Resource in SVG and Upload the same. Ribbon Workbench Once your Web Resource for the SVG format is set, going back to your Ribbon Workbench customization work space, go to the Button where you wan to update the icon and select the SVG Web Resource under Modern Image as shown below Publish Changes and See Once your customization are published, you can simply refresh and check that your image has been updated Note: An online converted might not give you an accurate image. However, it is best recommended to create SVGs on an app. I’ve heard recommendations about https://www.syncfusion.com/downloads/metrostudio Hope this helps!
Share Story :
Why blank locked fields won’t let you save the record – Quote ID example
So, I struggled some time in trying to make something just work as it was supposed to work. And for no conscious reason, I was able to figure out why. As to why my Quote wouldn’t save and auto generate the usual Quote ID? It kept asking me to enter it! Problem OOB, Quote ID is locked and is auto-generated when you save the record. Instead, I got this And asks me to enter Quote in the field again. Ideally, if you have a required field locked, you can save it and the form won’t force you. But, nothing would work. After much hassle, I finally noticed the culprit lying in plain sight. Let’s look at why this was happening. Culprit This happened because the same field was on the Business Process Flow and was unlocked That was the issue. As a part of the requirement, I had put it there, but either didn’t lock it or shouldn’t be there. I just removed it since it wasn’t a big deal and things were fine now. Hope this helps you! 🙂
Share Story :
Discount Settings for D365 Sales Line Items – Line Items or Per Unit?
For Line Item entities Opportunity Products, Quotes Products, Order Products or Invoice Products, you can chose what type of Discount you want to give out. This is a simple Organization-wise setting that you’ll need to set to define how Discount should be given on the Line Item level. System Setting Navigate to System Settings and under Sales tab, find this setting You can chose either between Line Item or Per Unit. Discount Behavior Line Item Now, when the Discount method is set to Line Item, the Discount value will be given to each of the Line Item regardless of the Quantity In the above example, the Discount $50 is applied to the entire Line Item entry of 2 quantities of the commodity of the price $1200 is 2 x 1200 = $2400 – $50 = $2350 ($50 Discount given to the Extended Amount) Per Unit And in case of Per Unit, the Discount amount of $50 is given to each Quantity in the Line Item In the above example, the $50 Discount is given to the quantity of commodity of worth $1200 each. i.e. 2 x $1150 ($50 Discount given to each Price Per Unit amount) = $2300 Hence, it vital what setting you want to use while giving Discount to Line Items in D365 Sales Hope this helps! 🙂
Share Story :
Import Time Entries in PSA from your Bookings in D365 PSA v3
Often, one of the real-life scenarios is making time entries by either remembering what you did the whole week or looking at the Schedule Board and based on what you were booked, making each Time Entry in PSA manually. Tiresome and inefficient, right? Not any more, a cool feature let’s you just create Time Entries in PSA v3 by a single click. Now, let’s say your Bookings look like the below. I’m booked on 2 projects across the week. And now let’s see how we import these. Import Time Entries Let’s see you want to make time entries now based on you Bookings in D365. On the Time Entries scree, drop down to the arrow besides Import. Select Resource Bookings. (Obviously, like this method – you can import from Resource Assignments and Outlook Sync too! But we will keep that for some other day) Then, you can select what all Time Entries should actually make it to the records. So you can select the ones you need and leave the rest. Once you click on Import, it’s done! Time Entries are created. Works like a breeze!
Share Story :
Hide Dashboards in D365
This being an obvious approach to how Dashboards are by default seen by all. And how you can disable/hide for users. Even for D365 System Administrators! Unlike usual forms, view or other records, And Deleting the Dashboard isn’t an option. Enable Security Roles way So a simple trick is to remove entire access from Enable Security Roles Make sure Display only to these selected security roles And then just untick if you want to provide no access to anyone Hope this works!
Share Story :
Show selective entities in Activity Party List in D365 Activities
Out-of-the-box, D365 Activity Party List field, say, Appointment’s Required/Optional Attendees fields lets you choose among multiple Activity Party enabled entities when you want to select records. And perhaps you don’t even want users to select what’s not relevant. Let’s look at how we can show only the required entities in the selection list. Before that, if you want to check how you can enable custom entities for the Activity Party, you can refer this post of mine – Enable entity for Party List selection in Appointment Hide entities from the Activity Party List field This can be achieved by writing a simple JS code and calling it onLoad of the Appointment form where the Party List field exists. Let’s say you only want to show the entities Lead and Contact in the Required Attendees Party List field Here’s the JS code that goes on the onLoad function of the Appointment form // JavaScript source code oAppointmentFormCustomization = { filterRequiredAttendees: function () { Xrm.Page.getAttribute(“requiredattendees”).setLookupTypes([“lead”,”contact”]); } }; And call the method filterRequiredAttendees onLoad as below The Appointment’s Required Attendees field will show only the entities you provided in the setLookupTypes([“lead”,”contact”]); Hope this helps!
Share Story :
Why fields go missing from Advanced Find in D365
At times, end users are used to working with Advanced Find a lot without having much control over what they can customize. Because for obvious reasons, they are users. And not someone who customize the system. In this case, they might also not know what they can’t search for in the Advanced Find and are led into believing that all the fields are being shown. And they could even wonder why it doesn’t appear in Advanced Find when they can see it on the Form/View. However, there’s a configuration which can either hide/show the fields in the Advanced Find. Making Fields Searchable So this is the answer. If fields are not Searchable, they don’t appear in Advanced Find Advanced Find field list with the missing field And, when the Searchable is set to Yes, they appear in the Advanced Find. Advanced Find showing the Searchable enabled field So that’s why. Hope this helps!
Share Story :
Shortcut to Settings from Unified Interface: D365
If you’re spending time looking and wondering that you always need to go to the app switcher to go the Settings from the Unified Interface, you need to do the following – Once you are in the Unified Interface, click on the Gear icon next to the help icon on top-right corner as shown below and click Advanced Settings – Right on the next tab, Settings with the classic UI is shown – And there’s nothing else on the SiteMap. Hope this helps!
Share Story :
Bulk Clear field values in D365
Introduction: A very handy approach for admins and users of Dynamics 365 who want to bulk clean up field values – And just selecting them in Bulk Editing them as shown below doesn’t help!! So here’s the scenario – You want to clear the selected records for their Credit Score field. Because primarily, you can commonly put a value in a field using Bulk Edit, but not clear the value. Workaround: What you can do instead, create a quick and simple workflow to clear the field. 1. Create an On-Demand workflow on Contact entity with an Update step for Contact 2. In the Update step, point to the field and then select the Operator on the right hand side to select Clear. 3. Make sure the Clear appears on the field you want to Bulk Update. 4. Once done, save and Activate the workflow. Run on the selected records you want to clear at once. 5. The values will not be cleared for these records. Hope this helps!
Share Story :
Use setFormNotification (Client side JS) in D365 v9 while Real-Time workflow is executing
Often, when a real-time workflow is being executed in the background, users don’t know how long it will take for the processing to finish. setFormNotifications in D365 v9 come handy! Scenario Here’s how I put my scenario – I call the Real-Time workflow using JS, example, on change of a certain field or the JS being called from the Ribbon button. The JS will trigger the Real-Time workflow I have. Now, while the Real-time workflow is running, the user doesn’t know it has been called and should the user retry the same action? Here’s when the form notification is vital. While the processing is happening, the message will remain as a notification on the form. Once the processing is complete, the notification will be cleared. JS Implementation: For the JS code implementation, the function to call the workflow needs ProcessJS which is available on https://github.com/PaulNieuwelaar/ So on the Form, I’ll add my file after ProcessJS file. Here’s the Account Form code I wrote. I created a JS file to call the Real-Time workflow. In the above code, the Xrm.Page.ui.setFormNotification(Message, Type of notification, Unique Identifier); This will set the notification. Page.ui.clearFormNotification(UniqueIdentifier); will clear the notification from screen. Using this, When the Process enters in Processing mode, the message is shown on screen as “Please wait while processing”. And once the execution is finished successfully, the notification is cleared. Similarly, you can even use this approach for WebAPI calls and have clearFormNotification set in the Success/Failure callbacks. Hope this helps!
