My first ever #365Saturday session in Dubai | 13th Apr 2019

Evidently as people who know me in person could tell, I was thrilled to be a part of #365Saturday event in Dubai 2019.

First and foremost, thanks to Raz Dynamics for putting this forward on a massive scale. The most prominent vibe of the event was the enthusiasm guests and speakers had at the event.

It being my first ever #365Saturday event, I was presenting on Dynamics 365 Project Service Automation (PSA). I had a full audience having interesting questions on real business scenarios on PSA and how some customers have implemented the module.

My session covered aspects of PSA like the Sales Cycle (Opportunity -> Quote -> Order), Project Management, Resource Management, Time & Expense entires, Invoice and finally, Reporting.

A special experience of the event was that I got to meet brilliant minds in the industry such as Wael HamzeDaniel LaskewitzAndrew WelchHichem ChekebkebNarayan Solanki.

There’s always so much to learn and take back from these events and by meeting torchbearers of the Dynamics community.

Looking forward for more of it! 🙂

Advertisements

Geo Coding addresses in D365 v9.1 with Unified Interface

Very straight-forward and useful feature is Geo Coding addresses on Sales, PSA & Field Service entities. Like, on Account, Work Order etc. entity. Let’s take an example of Account in this article.

button

Enable Geo Coding

Geo Coding first, needs to be enabled in D365. If you try to access the Geo Coding feature, you’ll be treated with this error –

error

So, let’s do the following –

  1. Navigate to the Resource Scheduling app –
    resScheduling
  2. If you are in the Unified Interface, make sure you switch the Area to Settings and then select Administration
    settingsSwitch
  3. Then, Scheduling Parameters
    schedulingParameters
  4. In Resource Scheduling, flick the Connect To Maps to Yes, read the warning specified and confirm if you are ok
    connect.png
    warning
    That’s it.

Using Geo Code

  1. Once enabled, you can click on the Geo Code ribbon button on the Account record.
    button
  2. And, it will pick the address you entered and show the Latitude and Longitude for the same. You can simply click OK once the details look correct to you
    latLong
  3. The same will show on the fields on the Account entity
    actualFields

Hope this helps!

Making common developer/customizer tasks simpler by using “Level up for Dynamics CRM/365”

I know how it’s like to be a developer/customizer for D365 and having to fumble between windows to reach ‘name’ of fields, look behind the scenes trying to get a schema name, etc.

But all of that is simplified with this Chrome extension called as Level up for Dynamics CRM/365 offered by Natraj Yegnaraman

Link: Level up for Dynamics CRM/365

Using the Chrome Extension

Add the extension to Chrome as below –
addToChrome

Once you see Level up icon on Chrome like below, you can use it so do common tasks and much ease –

extensionAdded

And when you click it while in D365, you’ll get tools that you could use to work your way in Dynamics 365

controlCenter

One of my favorite among these, as a customizer/developer is – “Logical names”. I shows the logical names of the fields/Tabs and saves me time from going in to Solutions or opening the Form Editor
logicalNames

Loved this and the way it works!

 

D365 Quick Tip: 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,

ribbon.png

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

enableSecurityRoles

Make sure Display only to these selected security roles
selected

And then just untick if you want to provide no access to anyone

removed

Hope this works!

Show specific entities in Activity Party List Lookup in D365 Activity entity

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.

default

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.

  1. Let’s say you only want to show the entities Lead and Contact in the Required Attendees Party List field
  2. 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"]);
    }
    };

     

  3. And call the method filterRequiredAttendees onLoad as below
    onLoad
  4. The Appointment’s Required Attendees field will show only the entities you provided in the setLookupTypes([“lead”,”contact”]);
    filtered

Hope this helps!

How to add Rating Values to Rating Models in D365 Field Service and PSA

Rating Models and Rating Values are attributed to Bookable Resources in Dynamics 365 PSA and Field Service. Out-of-the-box, there are 3 Rating Values – Familiar, Good & Proficient. But obviously, you want to customize to have your own.

This is a tricky change and this post will exactly describe before you end up doing something wrong.

If you think all you need to do is add a Rating Value to the Rating Model and save, it won’t work

addRating

Because when you do this, the Value field is locked and you can’t enter anything and just saving the record with the name of the Rating Value will result in the error as shown below

errorWhenDirect

Update Max Rating on Rating Model

So, the right way to do it is to update the Max Rating Value on the Rating Model record.

updateMaxRating

As soon as I save the record, see the an additional Rating Value appears. And in fact, these are the new records that were created when you updated the Max Rating Value and not that the old ones were renamed to ‘Enter rating label here…’

newLabelsToEnter

Note: You can simply enter the record and update all the Ratings inside to the corresponding values.

What happens to existing Ratings used for Resources?

They are all there but have been deactivated, if you query all the Rating Values as is, you’ll see the ones created due to the change we did above and the ones that already existed were suffixed with “[Inactive]” label. See below –

newlyCreated

Well, since these are all the new records created, the old ones are ‘Deactivated‘. What remains with the existing Bookable Resource Characteristics records are the Inactive ones.

inactiveAssigned

To update these, you can do a simple Advanced Find by querying one of the inactive Rating Values and updating them using Bulk Edit to set the new one.

  1. Query the inactive ones
    queryInactive
  2. And simply Bulk Edit to update the Inactive ones
    bulkEditInactive

By the way, if you want to Bulk Clear and start fresh, you can check my blog on Bulk Clearing fields using Advanced Find here – D365 Quick Tip: Bulk Clear field values

Hope this helps you!

 

Use Read-Only grid among Editable Grid enabled entities in D365

When you enable Editable Grid for an entity, all the public views become Editable Grids, correct?

And if you wonder if you can keep certain grids as Read-Only and the rest as Editable, your assumption is correct. Here’s what this blog is about.

You can still go back and select a particular grid which you want to keep as a classic Read-Only grid

  1. Let’s say you have added the Editable Grid under Controls. This will apply Editable Grids for all the Views on that entity.
    enabledEditable
  2. And you want Vendors view, for example, to show the classic Read-Only grid, open it up.
    vendorView
  3. Select Custom Controls.
    customControls
  4. And force-add another Read only grid even if it says the Default one is already selected.
    forceAddRead-Only
  5. Save and Publish you changed and check
    classicGrid
  6. And the rest of the grids will continue to be Editable Grids
    editableOthers

Note: I tried this on the Unified Interface and this works. Somehow, it didn’t work on the Classic Web UI.

 

Hope this helps!