Easier template selection & Manage Activities with ease in Dynamics 365 | 2020 Wave 1 Feature

Easier template selection and a improved Activities management view are pretty important features that got added in this 2020 Wave 1 Early Access. Here’s what they are!

Disclaimer: Before we proceed, please note that this is a part of the Wave 1 2020 Early Access. We can’t be sure if this will make it to the final release. Also, you can enable Early Access into your Sandbox instance only and test since it’s not recommended for Production at this point.

Easier Template Selection

Now, you can preview how the Email will look like before you select the template in the Activities
First, you need to click on Insert Template once you select the recipient of the Email
insertTemplate

And you can preview what each applicable template will look like before making the selection
previewInNewUI

And when you select Apply Template, it was applied to the actual email.
oldPostSelection

Please note that this is only in Dynamics 365 and doesn’t translate the same to Dynamics 365 App For Outlook’s Add Template feature. By the way, if you’re looking to set up D365 App For Outlook, please check these related posts –

Summarizing D365 App For Outlook Setup in 3 steps with Exchange Online mailbox

Using Templates from D365 CE in D365 App For Outlook

Old Template Selection

Old Template selection was just selecting the Template itself and you had to rely on your knowledge of what template to use from your system
oldSelection

Manage Activities with Ease

Now, with the 2020 Wave 1 Updates, you can now manage your Activities with ease. Simply by going into Activities, you can directly choose how you want to filter what Activities should be seen instead of going into several branches of Views and then making the selection.

newActivitySelection

Now, you can filter by the Due Date of the Activity, by default is set to All so that All Activities show
dueAll

 

And you can also select what type of Activities you want to see by selecting from Activity Type
activityType

These very simple yet powerful features are sure to make your work around Activities area a lot better. Hope this helps!

Update Price feature in D365 PSA v3

Typically, your costs for your clients go up by a certain percentage (%). It’s a standard practice to update the entire Price List consistently as and when there’s an increase.

This is a great feature to update the entire Price List by a defined % and then reflect this in the Estimates in your Project in PSA. Let’s take a look –

Scenario

Let’s say your original SalesPrice for a Developer role is $50
scenario1.png

And the same is reflected in the Estimates in a Project as well. Based on $50 for Developer i.e. resource Priyesh Wagh will spend 12 hours. So 12 * $50 for that week of 1st Dec is $600
originalSalesApplied.png

 

Updating Prices in Sales PriceList

Now, there’s an increase you want to apply. With just a simple change, you’ll be able to do so.

Assuming the PriceList in question here is SalesPriceListUS and you want to add a 10% increment to the same. Simply click on Update Prices button as shown below.
originalPrice.png
And specify the % of increment to be applied. Use Negative number to Decrease.
apply10
And there we go, a 10% to $50 is applied to all items as indicated.
scenario2

Update Price on Project’s Estimates

Similarly, to bring the change to the desired Project, look at the Estimates tab on the Project and click on Update Price button to effect the Prices on the table as well.
applyNew.png

And you’ll see the updated prices in Sales time-phase in the Project Estimates
updatedSalesApplied.png

Hope this helps!!

D365 General Tip: Keeping Currency and PriceList in check

In a hurry, you perhaps selected a similar looking Price List on your Quote and you want to change it.

Example: By mistake, I have selected “SalesPriceListINR” and want to select “SalesPriceListUS
salesINR

But when you try to do this, you can’t see the PriceList you want to set. Why is that?

visiblePLs

Currency

That’s because the Currency selected on the record is Rupee (₹) and your PriceList has the currency US Dollar ($)

rupeeSelected

Change it to US Dollar and you’ll see your PriceLists show up.
USDSelected.png
USDSet.png

And try searching your Price Lists again
correctPriceList

Error while changing PriceList

In a typical scenario, if you have child records dependent on the record you are changing, you’ll see this error.
typicalError.png

But as simple as the wordings are, you’ll need to do the needful and make sure there are no Currency dependent records associated.

 

Hope this helps!

 

 

Set Lookups in Xrm.WebApi D365 v9 correctly. Solving ‘Undeclared Property’ error

Using Xrm.WebApi needs you to be careful with the field names and what to use when. Especially, when you are dealing with Lookups.

One of the most common errors you’ll come across is the one like below – “An undeclared property (fieldname you entered) which only has property annotations in the payload but no property value was found in the payload.

error

This is confusing as to what needs to be put in while setting the lookup.

If you have done the below, entered the name of the field which is all in small caps  –

object[“msdyn_resourcerequirement@odata.bind”] = “/msdyn_resourcerequirements(<Guid>)”;

This will result in the above error!!!

 

You’ll need to put the Schema name of the lookup field instead and this should solve your problem –

correctName.png

and the code should look like this –

object[“msdyn_ResourceRequirement@odata.bind”] = “/msdyn_resourcerequirements(<Guid>)”;

And this should totally work for you!!

Hope this helps! 🙂

A manager is required for non-project time entries, absence, and vacation error in D365 PSA v3

In PSA v3, there occurs a scenario where Resources (Users) have to enter about their absenteeism and they’re not able to submit the request successfully on the Time Entry grid.

Error while Submitting Absence/Vacation & Non-Project Time Entries

  1. Typically, when a Resource has to make an entry for Absence but doing the below
    absenceTypeEntry
  2. And then clicking on Submit.
    submittingTE.png
  3. But, doing so gives an error!
    errorMessage.png

Let’s look at what was missing in readying the system for using PSA for the Resources –

Adding Manager for a Resource

Evidently from the error message itself, a Manager is required to approve the non-project time entries. Here’s how you can set it up!

  1. In PSA, it is required that ‘Manager’ is set for a Bookable Resource to be able to submit an absence/vacation/non-project time entry. Quite logical.
    So, In User record (associated with the Bookable Resource record of the actual user), the Manager should be assigned.
    missingManager.png
  2. Like below, if there’s a manager present, the Resource should have no trouble submitted non-project/absence Time Entries.
    managerAdded
  3. And once this is set, the entries should be submitted without an issue like below –
    entrySubmitted.png

What can the Manager do?

  1. Once this type of Time Entry has been submitted, the Manager can see it under Approval entity in their PSA under Absences/Vacations for Approval
    approvalArrived

Hope this was helpful!

 

 

Modified By (Delegate) & Created By (Delegate) in D365

These fields which are everywhere but you don’t really pay attention to really mean something worth.

So if you feel you want to get hold of someone for modifying a record. Maybe also take a look at Modified By (Delegate) just in case so that the actual user might be someone else who wanted to do another thing on that record. 🙂

Impersonation is one of the basic aspects of a plugin step that you need to carefully design to let another user (usually Admins for most implementations) make the plugin run under their context instead of giving more security roles/privileges to every other new user.

Well, same goes for Created By & Created By (Delegate) also!

Modified By

Usually, when you update something on a record, the Modified By is updated as expected. But notice that Modified By (Delegate) is not updated.
noDelegate.png

That’s because you are the rightful owner of the record and there’s no other person involved.

But what is someone else is modifying the record (who don’t have access to that record)?

In that case, Modified On (Delegate) field is populated with the name of that user. In such scenarios, Modified By (Delegate) user is the one who caused changes to the record.

delegatedUser

Why Modified By (Delegate) was populated

The reason this was populated was because the record was updated through a plugin by a user who doesn’t have Write access to the record.

But because the user invoked a plugin which was Impersonating as a User who has rights to the records, the record was successfully updated. And this, the actual user who called the plugin is the one who will be populated in the Modified By (Delegate) field.

impersonatingOtherUser

Hope this quick tip helps!