Maximizing efficiency in Resource Scheduling: Prioritizing Locked Bookings

In Resource Scheduling Optimization, dispatchers can lock existing scheduled bookings to Resource, Time or Time Range, or Resource and Time based on their scheduling scenarios.

What are locked options and why are they needed?

Once a booking is created, a lock can be set on the Scheduling Lock Options field in the Resource Scheduling Optimization tab of the Bookable Resource Booking record.

There are 4 options:

  • Lock to ‘Time Range’. A repair work order is scheduled for tomorrow and a confirmation sent to customer stating that a technician will be arriving between 9am to 12pm in the morning. In case if this repair work order needed to be rescheduled as part of rescheduling or re-optimization process, RSO will need to make sure estimated arrival time for this booking still between 9am to 12pm but may move this booking to other resource if needed in order to optimize global scheduling results.
  • Lock to ‘Resource’. Sometimes, certain technicians manage work order requests for specific service accounts, in this case, dispatchers can configure technician as ‘Must choose from’ resource on Resource Requirement record before requirement gets fulfilled, or if the booking already created lock the booking to this resource. RSO will make sure to keep this booking assigned to the same resource but may move to another time in order to optimize global scheduling results.
  • Lock to ‘Time’, similar like Lock to ‘Time Range’, instead of keeping the booking within a time window, RSO will make sure to keep the estimated arrival time for this booking at exact time but may move this booking to another resource if needed in order to optimize global scheduling results.
  • Lock to ‘Resource and Time’: Sometimes, there are specific commitments with customers, which requires booking time or assigned technician to not change, with this lock option, RSO will NOT change this booking at all, it may recalculate estimated travel time based on prior booking changes.

How did RSO handle locked bookings before?

Before this changes, RSO administrators could select and rank ‘Locked booking’ objective on optimization goal, RSO will try to include locked bookings and optimize together with other bookings. When there are too many locked bookings in optimization scope, it reduces the flexibility of RSO system to generate optimal results. To improve global optimization results, RSO may decide to NOT include some locked bookings in the new proposed schedule, and since RSO will not delete locked bookings either, these locked bookings will be treated as ‘Ignored’. Dispatchers will end up seeing overlapping bookings on schedule board, or technician gets double booked which causes confusions and disruption.

For example, there are two requirements, Repair work (1 hour) and Install boiler (8 hours). We have one resource (Jeff) that works 8 hours per day. If you book repair work (1 hour) to the resource Jeff and lock that booking to Jeff, when RSO runs with the objective of maximizing total working hours, RSO decides to ignore the booking for Repair work (1 hour) and create another booking for Install boiler (8 hours) to maximize the total working hours. Since Repair work (1 hour) gets ignored from the final schedule and not being deleted, Jeff ends up being double booked.

Improved logic for locked bookings

With the improved logic for locked bookings shipped along RSO 3.4.0.8, RSO will ALWAYS include locked bookings in the new proposed schedules, and schedule other bookings around.

In the previous example for Jeff, RSO will make sure that booking for Repair work (1 hour) remains on the schedule, won’t create booking for Install boiler (8 hours) to avoid overlapping.

Excessive use of lock constraints may result in poor optimization of the final schedule. For example: Jeff has low utilization as there isn’t any other requirement can fit into the remaining hours.

Booking lock options should be used wisely to maximize Resource Scheduling Optimization results and minimize interference with other Resource Scheduling Optimization objectives.

Will RSO still respect locked bookings when locked bookings violate scheduling constraints?

Sometimes, dispatchers may lock a booking explicitly without being aware that the locked booking potentially violates certain scheduling constraints.

E,g: skill matching, a booking gets assigned to a technician who does not have the required skill. 

In this case, RSO will still respect locked bookings and make sure this locked booking is in the final schedule, as RSO respects user decision of the ‘locked booking’.  RSO shows a prompt: “Locked booking is infeasible, has invalid match of resource skill” to let the user decide in case they would like to correct manually and explicitly.

These are some of the new enhancements to allow efficiency in resource scheduling. Do review the detailed documentation on Universal Resource Scheduling for Dynamics 365 Field Service overview – Dynamics 365 Field Service | Microsoft Learn for further information.

Source