Cancelled Bookings Imported in Time Entries in Dynamics 365 PSA issue | [Quick Tip]

Import Bookings is one of the important features provided by PSA for users to do Time Entries quickly and efficiently!

But out of the box, they also Import Cancelled Bookings!

Scenario

Now, let’s say we have some Bookings for a Resource and they look like this-

  1. These are the original Bookings for Priyesh on Tuesday and Thursday respectively i.e. 27th and 29th Oct 2020.

  2. Now, let’s cancel the 27th Oct 2020 booking. You can do so by right-clicking and changing the Status to Canceled. Once done, it will look like below –

  3. By default, when Priyesh tries the use the Import Bookings feature in Time Entries, he sees the below Canceled Booking as well.
    It can happen that the one who imports doesn’t recollect about the Canceled Booking and might Import it by mistake.


    To solve this, here’s what we do!

Resource Bookings for Time Entry Import view

So, here’s the view you care for.

  1. Open the Resource Bookings for Time Entry Import view as shown below

  2. In this view, change the Criteria

    The default criteria will look like below –
  3. Add another condition to it on top level i.e. the Booking Resource Booking entity itself for Booking Status field.


    Add this condition

    This should be it. Save and Publish your changes.

Correct Bookings Imported

With that small change, Canceled Bookings will not be imported for Time Entries.

Hope this helps!

Here are some more Dynamics 365 PSA (Project Service Automation) related posts you might want to look at –

  1. Change Booking Status colors on Schedule Board for Field Service/PSA [Quick Tip]
  2. Modify Project tab’s view in Schedule Board in PSA v3 | Quick Tip
  3. Dynamics 365 PSA v2 to v3 Upgrade failed? Here’s what to do.
  4. Additional columns in PSA v3 Schedule view
  5. Update Price feature in D365 PSA v3
  6. A manager is required for non-project time entries, absence, and vacation error in D365 PSA v3
  7. Set Work Hours Template to a Bookable Resource in D365 PSA v3
  8. Booking Resources more than their capacity in D365 PSA v3
  9. Time/Expense Entry Rejection comments in D365 PSA v3
  10. PSA v3 View Custom Controls used on Project form

Thank you!

Change Booking Status colors on Schedule Board for Field Service/PSA [Quick Tip]

Here’s a Quick Tip for everyone using Field Service and Project Service Automation. In case you are wondering how can you change the colors of the Booking Statuses on the Schedule Board for Field Service and PSA, here’s what you need to do.

Default Colors

This what your default Schedule Board looks like out-of-the-box.

Booking Statuses

Booking Status is an entity within which you can set this up.
You can navigate to Booking Statuses entity in your Field Service like below

There are these records you can modify. Also, for PSA, you have the same entity with different records for Booking Statuses
But, let’s look at Field Service’s example –

Now in each record, you can see in Common tab

And you can change by selecting this color picker control

And save the new selected color.

And let’s change for Completed as well, just another example – changed for Completed also to a greenish shade

Updated Colors

Now let’s look at the updated Schedule Board of how these colors look.

Hope this quick tip helps!

Here are some more PSA/Field Service posts you might want to look at –

  1. How to add Rating Values to Rating Models in D365 Field Service and PSA
  2. Why we see Cross Day in Work Hours on Bookable Resources/User?
  3. Modify Project tab’s view in Schedule Board in PSA v3 | Quick Tip
  4. Dynamics 365 PSA v2 to v3 Upgrade failed? Here’s what to do.
  5. Additional columns in PSA v3 Schedule view
  6. Update Price feature in D365 PSA v3
  7. A manager is required for non-project time entries, absence, and vacation error in D365 PSA v3
  8. Set Work Hours Template to a Bookable Resource in D365 PSA v3
  9. Booking Resources more than their capacity in D365 PSA v3
  10. PSA v3 View Custom Controls used on Project form

Thanks!

Modify Project tab’s view in Schedule Board in PSA v3 | Quick Tip

Most common asks on Schedule Board in D365 PSA is about how we can modify the Project tab view we see?

actualTabShown

Resource Requirement Entity

The Resource Requirement entity is what controls what views are available for you on the Schedule Board –

  1. To be able to find what this view is about, you’ll need to go to the Resource Requirement entity
    viewLocated
  2. Now, if I open this record, you can make changes to this view. In this case, I now got Type and Status next to Name field and pushed Created On a little further.
    modifiedPart
  3. Now, just Save and Publish.

Project Tab view

Now, simply refresh Schedule Board and you’ll see the updated change –
updated

If you’re looking for more PSA related posts, you can check these –

  1. Dynamics 365 PSA v2 to v3 Upgrade failed? Here’s what to do.
  2. Additional columns in PSA v3 Schedule view
  3. Update Price feature in D365 PSA v3
  4. A manager is required for non-project time entries, absence, and vacation error in D365 PSA v3
  5. PSA v3 View Custom Controls used on Project form
  6. Set Work Hours Template to a Bookable Resource in D365 PSA v3
  7. Time/Expense Entry Rejection comments in D365 PSA v3
  8. Booking Resources more than their capacity in D365 PSA v3

Hope this quick tip helps!!!

Dynamics 365 PSA v2 to v3 Upgrade failed? Here’s what to do.

This is a little tricky upgrade from PSA v2 to PSA v3. I’m sure by this time of the year, most of you must have upgraded and this post by me comes a little late than it should.

Here’s my experience and what help from Microsoft Support I needed to complete the Upgrade successfully.

So usually, this is what you expect when you initiate the upgrade process. You go to the Instance Picker from Dynamics 365 Admin Center.
upgradeButton

And you can see that you are on PSA v2.4.x version and the New version available is 3.10.x. When you kick off, it starts running
upgradeInProgress
But, it fails like this.
installFailed

Let’s take a stab at it!

I usually prefer to go with the old school classic Instance Picker, if you want to have a quick access to it, check this post – D365 Admin Center: Instance Picker Link

Solution Health Hub

Note: Please be aware that below mentioned steps that involve Project Service & Project Service Upgrade Rule Set can only be provisioned by Microsoft Support and we need to create a Support Request with Microsoft for them to provide this Rule Set. These comes in a Managed Solution Microsoft Support installs from their end into your environment.

  1. Assuming Microsoft Support has enabled this Rule Set for your organization, you can go to Solution Health Hub
    createNewAnalysisJob
  2. Then, select either Project Service or Project Service Upgrade
    ruleSet
  3. It will automatically run asynchronously as and when you create it. It should display results in a few moments.
    failedValidation
    In this case, my failures were that Resource Requirement records didn’t have Hours & Resources were not filled in. Some Project Tasks didn’t have Project attached to them which resulted in corrupted PSA data according to the Rule Set and hence, the upgrade fails.
  4. Now, in my case, I cleaned this data manually. Post that, I created another Analysis Job to ensure that there are no more failures.
    passedRuleSet
    Also, there’s another Rule that isn’t mentioned here but is a reason for failure. That is – Project Name (msdyn_Subject) should NOT be Blank. Use Advanced Find to find these records and correct manually.  Please ensure this manually as it won’t appear here. 
  5. Now, there’s a workflow called as Update User Work History. It should have shown 3.3 or higher in the version to select, unfortunately, this will come once the upgrade fails 1 time.
    oldWF
  6. Now, you are all set to kick off Upgrade Once again. It will fail due to the incorrect workflow mentioned above in #5.
    installFailed
  7. Now, you can go back and check that workflow, it should have the correct version appearing (due to the partial upgrade that happened in #6 above, which eventually failed)
    updateUserWorkHours
    Set this to 3.3 and Activate the workflow again.
  8. Now, trigger the Update to PSA v3 one more time. And this time it should go through correctly.
    installedPlease note, due to constant upgrades in the platform/PSA, there could still be some undetected issues which could result in failure. Hence, I tried to put what I experienced in general.

    Post this, also ensure that all SDK Message Process Steps and related Workflows related to PSA are enabled.

In case you are also looking to find out about dependencies about failed Solution Upgrades, you can check this post too – Check Managed Solution failures in Solution History in D365 CE

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

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!

 

 

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!

Booking Resources more than their capacity in D365 PSA v3

While booking resources, you often don’t pay attention to how much capacity the resource has.

Or rather, you are aware, but you want to book the resource anyway (only to change later on, which I don’t recommend.)

In that case, if you are trying to overbook a resource out of their capacity, you are treated with this message below –

errorMessage

Why this occurs?

This is because of the Work Hours defined for the Resource. Rather, what Work Hour Template is assigned to that resource. Now, let’s say, you are trying to book someone for 8 hours on top of their already booked 2 hours
overloading.png

If you switch to the Hours view, you’ll see the availability marked by white cells. Grey meaning, unavailable.
available

Remember, this is even said in the error message when you tried to click Book.
errorMessage

Alternative

Of course you can do this, but you should have a very strong reason to overbook resources. 🙂

Switch to Evenly Distribute Hours to allow the resource to be booked on top of the existing one.
evenlyDistribute.png

And this should be fine, but it will appear in red indicating that the resource is overbooked. Say, 10 hours (on top of already booked 2 hours) – exceeding the 9 hours total limit.
hardOver
redMarking

Suggested

You should rather Propose Book the resource, this way, the booking will exist and won’t bloat the schedule board. And then, you can decide later to do something with it.

Front Load – Proposed

Now with combination of Front-Load and Proposed, you should be able to Book for only the remaining capacity

frontLoadPropose.png
only7.png

Evenly Distributed – Proposed

With Evenly Distributed Proposed, you should be able to exceed the capacity and even Propose for the full time you want.
evenlyDisProposed.png
Full10Hours.png

 

Hope this quick tip helps! 🙂

Happy 365ing!

 

Time/Expense Entry Rejection comments in D365 PSA v3

Let’s say in your PSA implementation, you are the Project Approver and you often face the challenges to rejecting time entries so that the resources could just correct it and re-submit. (Or any reason, for that matter)

Do you manually go and tell them that they need to re-submit? Let’s make this easier. This post applied for both, Time and Expense entries in PSA v3.

Where are the Rejection comments stored?

As an Approver, you have Resources submitting their Time Entries and you see them under Time Entries For Approval view in Approvals entity, ready to be Accepted/Rejected
ApprovalWaiting.png

 

And optionally, you can enter comments specifying why you rejected the Time Entry.
rejectionComment.png

But where is this data stored?

It’s actually stored as a Note on the Time Entry record itself! Note that the Entry Status of the Time Entry now says ‘Returned
storedAsNotes.png

Let the Resource know

You could just create a workflow to send an email to (Even Microsoft Flow, if you are comfortable with it)
A simple workflow to send out a notification will be useful to let the Resource (Owner of the Time Entry) know that the Time Entry was rejected and they need to take action.
workflow
On create of Note, Check if the Regarding (Time Entry) contains data and the Entry Status == Returned

emailBody
And send it to the Owner of the Time Entry specifying what details should go out. Add a link to the Time Entry record, maybe.

And they can click the link back to the Time Entry itself.
emailToResource

Hope this use-case proves useful in your implementation! 🙂

Happy 365ing!

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!