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!!

Set Work Hours Template to a Bookable Resource in D365 PSA v3

For all the newbies in D365 PSA, one of the most critical part of configuring PSA is setting up Bookable Resources with their respective Work Hours Template to define their Work Hours and Days they can be & should be booked.

By Default, if you create a Bookable Resource they have a 24-hour slot open to be booked.
Example, I created a new Resource Shailesh Wath. Specially, not the Timezone selected. This will define how the resource will appear on Schedule Board.
newResource.png

And if you open his Work Hours by clicking on Show Work Hours, you’ll see this (which isn’t defined).
calendarNotSet.png

And on the Schedule Board, Shailesh looks like this –

Available on All Days

allDays.png

And available on All Hours
allHours.png

Work Hours Template / Calendar Template

Simply put – Work Hours are defined Schedule based off a resource’s Work Hours that can be applied to other resources as well.
You can find the Work Hours under Settings > Calendar Templates
WHT.png

Firstly, any 1 users Work Hours need to be defined in order to be set as a Template to a Work Hours. In this case, the System User Priyesh Wagh‘s Work Hours will be applied to the India Work Hours in the Template created.
IndiaWHRecord.png

Assign Work Hours Template

Now, we are assigning Work Hours Template to Shailesh which have defined hours and defined days of the week.
So, under Bookable Resources, select the User and then click on Set calendar option.
setCalendar.png

In the window, I’ll select the Work Hours Template I wish to apply. India Work Hours in this case.
IndiaWH.png

And click Apply
clickApply.png

Work Hours Template will be applied with this message.
applied.png

Obviously, you can do this for multiple resources at one. 🙂

Applied Work Hours

Now, if you observe the Work Hours to the resource, you can see this (defined timings with holidays on weekends)
legitCalendar.png

And on the Schedule Board, you’ll see the Days are properly defined
holidays.png

And also the Hours (8am to 4pm work schedule)
definedHours.png

Hope this quick tip helps!

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.

scheduleBoard

And now let’s see how we import these.

Import Time Entries

  1. 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.
    dropDown
  2. 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)
    importFromBookings
  3. 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.
    summaryOfImport
  4. Once you click on Import, it’s done! Time Entries are created.
    imported

Works like a breeze!

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!

 

D365 PSA: Restrict Project access only to their Project Managers

Out-of-the-box PSA’s Project Manager security role provides complete access to even other Project Managers. But then, what if you want to bring down the access of the Project Managers to their own Projects only?

Remember, access in D365 PSA is provided for Owner (ownerid) field and not Project Manager (msdyn_projectmanager) field.

PSARoleRestrict

Scenario

Now, I don’t want a Project Manager to have access to others Projects and looks like this can’t be controlled from the Security Level perspective, given the Project Manager is a separate field than Owner of the Project.

So, I’ll limit the access to only the User level (the one who created the record would have the access, obviously)

PSARoleRestrict2

But this remove the access from even the Project Managers since they don’t own the Projects. To overcome this, I’ve written a simple plugin to provide access to the Project Manager whenever they are updated by Sharing and giving PMs the access.

For this, I’ve written a plugin code that will grant all permissions to the Project Manager of that Project and I would like to share this with you all to consume it.

GitHub Project

Here’s the GitHub repository I’ve created which has the plugin code and the Unmanaged Solution that contains only the plugin assembly and the registered step –

Link: D365PSA-PMAccessRights

gitProj

The D365 Unmanaged Solution resides here –

unmanagedSoln

This will work in the following scenarios –

  1. When a Project Manager is changed from Person A to Person B, the access rights of Person A will be removed and granted to Person B.
  2. You can even create a trigger field and use an on-demand workflow to set the trigger. This trigger should be included in the filtering attributes of the plugin step to update the existing records.

This will provide access to the Project Manager of the Project automatically apart from the Owner so that they see/access only Projects that concern them
accessGiven

Make sure no other security role is overriding your restricted access.

Hope this helps! 🙂

D365 PSA Quick Tip: Sync Resource Bookings with Outlook

You as a resource in an Organization are booked on projects. But are also needed to be in some meetings. But what if, someone who wants to invite you to a meeting needs to know if you’re booked on a Project/Task in D365?

In that case, Syncing your Bookings to Outlook Calendar comes handy.

Let’s say, most commonly in a Technical Services Industry where users are supposed to work on projects and they should appear as booked so that others don’t drag them to other meetings. 😊

Remember, Server Side Synchronization should be turned on for the user on their mailbox to be able to use this feature.

 

Enable Sync Resource with Outlook Feature

  1. In System Settings, navigate to Synchronization tab and enable Synchronize resource bookings with Outlook as shown below.
    enableSystemSettingLevel
  2. Personal Settings – The same needs to be done for an individual user on their Personal Settings in D365.
    personalSettingEnable

Bookings in PSA now appear in Outlook

Now, example, Priyesh is booked on Home Link Piping project on Monday, 3rd December and this is how the schedule board looks like this
scheduleBoard

As the sync happens, the Bookings will now show up in the user’s Outlook Calendar.
syncedToCalendar

Please note that Server Side Sync can take up to 15 mins to sync through as per the minimum sync cycle duration.

Hope this helps!

D365 PSA: Delegated Resource gets error on making time entries for another Resource

Have you been added as a Delegate for a fellow colleague but not able to Read, Create or Submit Time Entries on their behalf?

Let’s see what you are missing.

Before that, if you want to learn about Delegations in D365 PSA, check this Delegating Time Entries in PSA

Scenario

William Contoso wants to make Veronica Quek as his Delegate and let her enter time on his behalf. So William created a Delegate record for Veronica.
delegateAdded

Error for the Delegate Resource

Now, Veronica is attempting to do time entries for William by going to Time Entry Calendar view and switching the user to William.

  1. And when Veronica wants to enter time as William, she’d switch to the User on the Time Entries Calendar View like this –
    switchUser
  2. But, see this error and she don’t know what the issue might be. Even though she’s the Delegate!
    error

Missing Security Role

Yes, this is the first thing you should check

  1. Veronica Quek is missing a Delegate Security Role in PSA to be able to make time entries on behalf of other users.
    Assign Delegate security role to the user to make them enter time on behalf of others.
    securityDelegate

Hoping this is quick fix for you. 🙂