Better Calendar Control to Manage Resource Requirements

Resource Requirement is to a Planner what laptop is to a Programmer. Okay this is a bit too cliched but the fact is, as a planner, you’d mostly work on these three entities in Dynamics 365:

  1. Bookings,
  2. Resources, and
  3. Resource Requirements

A Resource Requirement record sits at the heart of URS and Field Service. The record basically defines the shape and form of the booking to fulfil the need. When a booking is created on a Schedule Board (drag and drop, manually or using a form), it is actually created against a Resource Requirement record. In other words, there is a Resource Requirement record behind every schedulable entity (e.g. Work Order).

OK, I got the context. Now, what is this post about?

It is common for planners to tailor ‘Resource Requirement’ records per the needs of the work, preferences of the client and other constraints. For instance, if similar work is being carried out in many areas, you may want to adjust the time zone on the Resource Requirement record. Previously this experience was a bit clunky but now we have got a new PCF (Power Apps Content Framework) based calendar which makes the function and experience seamless, consistent and also configurable.

Demo

  1. Open a Resource Requirement screen
  1. If you click on Modify Calendar, below is the old (deprecated) screen which used to open
  1. But now when you click on the button, this slick screen opens from the right
  1. In this case, let’s change the time zone to Perth. Save the record
  1. Schedule Assistant will take into account the new time zone while suggesting records

Reference:

https://docs.microsoft.com/en-us/dynamics365-release-plan/2020wave2/service/dynamics365-field-service/enhanced-work-hours-calendar-requirements

https://docs.microsoft.com/en-us/dynamics365/field-service/schedule-assistant

Thanks for reading!

I’d love to hear your thoughts 🙂

Hourly rates of resources and Booking cost

One of the FAQs on Dynamics 365 Field Service capabilities is about hourly rates of resources and how does that reflect the costing of work orders. This quick article will show a demo of how Dynamics 365 Field Service maintains and use hourly rates in work order bookings.

Step 1

Let’s begin with setting up an hourly rate for a resource. Go to Resource view, open a resource and update hourly rate in Field Service tab:

Step 2

Next, go to Schedule Board and assign a work order to the resource. Change status of the Work Order to In Progress:

Step 3

The booking may go through several statuses until it is completed. On the completion, go to Dynamics 365 Field Service, click open the Booking and go to Field Service tab. Total Cost column will have an automatically calculated value of the cost of the resource, based on a simple formula:

Total Cost = Sum for each resource (Hourly rate x hours spent on this booking)

In our example, the hourly rate was set as $25, only one booking was created against a resource who spent 20 minutes (0.33 hours) on the booking, hence the cost is $8.33 ($25 x 0.33 hours).

Please feel free to share feedback. Happy D365-ing!

How to configure the frequency of Booking Timestamps

One of the latest features announced for Release Wave 1 2020 in Dynamics 365 Field Service is the ability to ‘configure’ when the system should be generating Booking Timestamps.

What is it and why does this matter?
Booking timestamps is an entity which gets auto-populated to record updates on the status of booking/work orders. It records two important things: status and timestamp.

When a Work Order and associated Booking goes through status changes, booking timestamp maintains a record for each change with a timestamp. This information helps in reporting variety of useful data, for example total billable duration, total travel time, time entries etc.

What is NEW?

The change (still in preview) in this area is to configure ‘when’ the system should generate a timestamp. There are two configurable options now:

To understand how this works, let’s have a look at Booking Status in the test environment:

We have added Depot training, Risk assessment, Quality check and Waiting for Parts as ‘Booking Status’ records for the corresponding Field Service Status. The list of Field Service Status is fixed but Booking Status can be added or modified based on project requirements.

Next, we changed a booking’s status as follows (Booking Status/Field Service Status):

Scheduled/Scheduled -> Traveling/Traveling -> Depot training/On Break -> On Break/On Break -> Risk Assessment/In Progress -> In Progress/In Progress -> Quality Check/In Progress

Following time stamps are created under two different settings:

Per Field Service Status Change

Per Booking Status Change

As we can see the ‘per booking status change’ gives a more granular view into the specific of booking status which could be useful if there are such reporting or billing requirements. Otherwise the ‘per field service status change’ gives a high-level overview of the status changes.

Looking back to previous implementations, I think this is a small but very significant change in the way booking facts are recorded which will help in reporting on actuals and billing. Hope you will find this useful too. Feel free to share if you have any queries.

Setting up Booking Recurrence

Work Orders can be automatically generated and bookings can be auto-generated by Dynamics 365 Field Service, thanks to the Agreements functionality in the system. Agreements are used for setting up preventative maintenance schedule, audits, equipments/fleet service schedule etc. in the system, which then generates work orders and booking automatically – resulting in obvious productivity gains.

One of the key steps in setting up agreements is to setup recurrence of the work orders (and subsequently but optionally, bookings) generated by the system. This option is part of the ‘Agreement Booking Setup’.

Booking Recurrence – how to setup?

Clicking on the Booking Recurrence in ‘Agreement Booking Setup’ record, opens up a screen similar to (but more complex than) meeting invite recurrence screen of Outlook:

The screen lets you define following recurrence patterns:

  • Daily
    • every day or every work day
    • every # of day(s)
  • Weekly
    • day of the week
    • every # of week(s)
  • Monthly
    • day of the month OR day of the specific week of the month
    • every # of month(s)
  • Yearly
    • day of the month OR specific day of the month & week of the year
  • Duration:
    • Start and End dates (end date is optional)
  • Custom dates: Any custom dates for generating work orders and bookings (for example, you may want to setup servicing assets more frequently during the holiday season)

Booking Recurrence – how to import?

The use case here is when you would like to import service agreement into Dynamics 365 field service, you may want to import recurrence as well. The challenge here is that there is only /one/ field behind the entire recurrence screen:

FieldTypeNotes
Recurrence SettingsMultiple line of text Data is stored in XML format

Couple of examples here to see how it works:

  1. On setting up recurrence as ‘daily’ and start & end dates as 1/1/2020 to 31/12/2020, data saved in Recurrence Settings field is:
<root>
	<pattern>
		<period>daily</period>
		<option>every</option>
		<days every='1'>
		</days>
	</pattern>
	<range>
		<start>01/01/2020</start>
		<option>endBy</option>
		<end>12/31/2020</end>
	</range>
	<datas/>
</root>
  1. On setting up recurrence as ‘weekly – every Sunday’ and start & end dates as 1/1/2020 to 31/12/2020, data saved in Recurrence Settings field is:
<root>
	<pattern>
		<period>weekly</period>
		<option>every</option>
		<weeks every='1'>
			<days>0</days>
		</weeks>
	</pattern>
	<range>
		<start>01/01/2020</start>
		<option>endBy</option>
		<end>12/31/2020</end>
	</range>
	<datas/>
</root>
  1. On setting up recurrence as ‘weekly – every Saturday’, 30/1 and 31/1 as custom dates, and start & end dates as 1/1/2020 to 31/12/2020, data saved in Recurrence Settings field is:
<root>
	<pattern>
		<period>weekly</period>
		<option>every</option>
		<weeks every='1'>
			<days>6</days>
		</weeks>
	</pattern>
	<range>
		<start>01/01/2020</start>
		<option>endBy</option>
		<end>12/31/2020</end>
	</range>
	<datas>
		<data>01/31/2020</data>
		<data>01/30/2020</data>
	</datas>
</root>

As you can see, data is saved as xml which is based on standard format (called XSD). This XSD is not published but the format is consistent.

Therefore, to import booking recurrence, the first consideration is how the data extract to be imported is fashioned. If to-be imported records need to have the same recurrence, xml can be created manually per above format and added to the excel/csv before import. If there are different recurrence patterns, a code-based solution or excel macro can be used to fashion xml, per above format, against each row of data extract.

Thanks for visting, please feel free to share if you have any feedback or questions. Cheers.