Manage the status of your team’s bookings with Universal Resource Scheduling

Universal Resource Scheduling is all about booking skilled resources to the right work, at the right time, regardless of workstream. This means you can book resources for work orders, cases, projects, leads, or any custom entity. For more information, see Scheduling anything in Dynamics 365 with Universal Resource Scheduling.

Opening up the booking entity and the schedule board for any schedulable entity adds a ton of power. At the same time, while your resources are able to work on bookings from any of these workstreams, the business processes vary greatly for each workstream, and that includes tracking the statuses and the entire lifecycle of each booking.

Work orders traditionally follow a specific flow: Scheduled > Traveling > In Progress> On Break> In Progress > Complete. Or some derivative of that.

Projects may have a different flow: Proposed > Committed > Complete

Cases: Accepted > In Progress > Researching > Complete

Dynamics 365 customers can manage these different stages by changing the booking status attribute on the booking.

Here is where you can find the booking status:

 

Booking Status on the resource booking form

Booking Status on the resource booking form

 

 

Booking Status by right clicking the booking on the board

Booking Status by right clicking the booking on the board

 

 

What you may notice if you were to right click on a booking related to a work order, is that the initial status group is split into groups. Right clicking on bookings from different entities have different grouping values.

We wanted our customers to be able to maintain unique processes and statuses, despite unifying our scheduling feature set.

When you right click on a work order booking you can see the statuses grouped into 6 categories, each category containing one or many statuses.

 

Status grouped into 6 categories

Status grouped into 6 categories

 

When you right click on an opportunity booking, you will see the statuses grouped differently.

 

Status grouping for an opportunity

Status grouping for an opportunity

 

Additionally, there are some statuses that don’t even appear for work orders that do for opportunities! For example, the “committed” status.

Lastly, if I were to open up a work order booking and try to set the booking to the status “committed”, which is not appearing within the schedule board status list, you will notice an error.

 

Error while work order booking

Error while work order booking

 

We just demonstrated the following:

 

  1. There is a way to associate certain booking status records with certain schedulable entities.
  2. There is a way to filter out unassociated statuses within the schedule board right click menu.
  3. There is a way to group these statuses uniquely per schedulable entity.
  4. There is a way to enforce that statuses cannot be selected on unassociated schedulable entities even outside the schedule board.

 

Here is how you set it up:

  1. You need an option set attribute on the booking status entity. This option set is the key to the grouping, filtering, and enforcement.
    1. By way of example, the field service solution ships an option set called “Field Service Status”.

 

Field Service Status

Field Service Status

 

  1. On the booking setup metadata record, for each schedulable entity, you can set which option set field on the booking status entity to use for sorting and filtering for bookings of that type. You need to enter the logical attribute name of the option set on the booking status that you wish to use. Here is what the value is for Field Service out of the box:

 

Out of the box Field Service value

 

  1. If you leave this field empty, which is the default whenever you enable a new entity for scheduling, the attribute that is used for sorting and filtering is the option set is the option set called “status” which ships out of the box with the booking status entity and is a required field.

 

Booking Status Field Logical Name field left empty

Booking Status Field Logical Name field left empty

 

 

Status field on Booking Status entity

Status field on Booking Status entity

 

  1. In order to sort and filter entities for let’s say the case entity, you can either reuse an existing option set such as new_fieldservicestatus, which of course locks you into the same status filter and groups as work orders, or, you can create a new option set field on the booking status entity. We will create a new option set called new_casestatuses and add three options to the option set.

 

New option set_Case Statuses

New option set_Case Statuses

 

  1. Now we need to update the Booking Setup Metadata case record with the logical name of the newly created field.

 

 

Update Booking Status Field Logical Name field

Update Booking Status Field Logical Name field

 

 

  1. If you were to go to your schedule board now and right click on a case booking, you would see that there are no groups and no statuses to choose from since we have set the filtering yet have not associated statuses to this newly created new_casestatuses attribute yet.

 

No group and statuses available for the new option set

No group and statuses available for the new option set

 

Statuses for the option set

Statuses for the option set

 

 

  1. Now simply add the new field to your booking status form, and associate existing statuses that are part of the case flow to the appropriate case group. I have chosen to reuse two existing statuses. This is a very important point. You can share a single status record across multiple workstreams. Below you can see that Canceled is unique to field service, and entities grouping by the default “status” attribute. Completed and In Progress is shared by Field Service work orders, cases, and entities filtering by the out of the box status field.

 

add the new field to your booking status form

Add the new field to your booking status form

 

  1. In addition to reusing two existing statuses, I have also created 2 new statuses to be used by cases, but not work orders. “Triage in progress” and “Research Paused”. You will notice you always have to fill in the default status field, this is by design.

 

Two new statuses to be used by cases

Two new statuses to be used by cases

 

 

  1. That’s it!
    1. If I right click my case booking on the schedule board, you will see statuses grouped into the option set values on the case status attribute created in step 4.

 

Statuses grouped into option set values

Statuses grouped into option set values

 

    1. Any statuses that do not have a value in the “new_casestatus” field are filtered out completely.
    2. If you try and set a status not created for cases via form, an error will display.

 

Error when you set a status not created for cases

Error when you set a status not created for cases

 

Remember you can also set your default status for when you FIRST create a booking, and also a default status should you want to cancel a booking per each schedulable entity on your booking setup metadata record!

 

Set a default booking status

Set a default booking status

 

Thanks for taking the time to read about this feature. I do hope it helps when it comes to implementation of Universal Resource Scheduling.

 

For more information, see Scheduling anything in Dynamics 365 with Universal Resource Scheduling.

 

Happy Scheduling,

Dan Gittler

Sr. Program Manager, D365 Engineering.