Define optimization scopes

Completed

Resource Scheduling Optimization can't optimize items in the application unless it knows what items are available to be optimized. RSO uses scopes to specify which records and which timeframes the optimization engine should focus on when it runs.

A typical scope can include the following parameters:

  • Resources - Defines which resources should be included in the optimization job. (Required for all scopes)

    For example, only external resources who are in Washington and are electricians.

  • Resource requirements - Defines which resource requirements (unscheduled items) that you want to include.

    For example, only unscheduled items where the work order has a sub status of Ready to dispatch.

  • Bookings - Defines the existing bookings that you want to update.

    For example, you can optimize bookings that are scheduled for today only. Leave future bookings untouched.

Screenshot of Resource, Requirement, and Booking views defining the optimization scope with Time Range where new booking will be created.

Scopes should be as small as possible. RSO is quicker and more effective if requests contain fewer resources, requirements, bookings, and shorter time range durations. Frequently, organizations already have logical partitions that could be used for RSO such as:

  • Temporally defined - This partition could be separate day workers versus night workers.

  • Geographically defined - Locations such as neighborhoods and cities.

  • Logically defined - Defined by support level or incident type.

Scopes can be defined by using system views or personal views that define the resources, requirements, and bookings. If a personal view is selected, it's shared with the RSO application user and other users who have access to the scope. An optimization scope must always include the specific resources to optimize.

For example, if an organization only wants to optimize resources that are in Washington territory, they create a view in Dynamics 365 Field Service that filters the bookable resource entity to only show resources in Washington. The view could then be added to the scope from the Resource View drop-down list.

Scopes aren't only used to optimize existing bookings, but they can also create new bookings. This parameter can be set on the scope by defining what requirements, bookings, or both to optimize, for example:

  • Create new bookings (Requirement view) - To use the scope to create new bookings for any preventative maintenance work orders that are generated by field service agreements. You would create a view for the resource requirement entity that shows unscheduled work orders with a work order type of preventative maintenance.

  • Update existing bookings (Booking view) - To use the scope to optimize any bookings that are currently scheduled for Washington customers. You would define a view for the bookable resource booking entity that shows only bookings that are associated with work orders in the Washington territory.

You can define both a requirement and booking view in a single scope. However, because it's best to have scopes to be as small as possible, it might be best to use one or the other.

Optimization range settings

Optimization range settings define the range of time when bookings can be created, updated, or deleted based on the record types that are included. These settings have nothing to do with the scope of bookings that are defined based on the record views that are associated with bookings.

The following are types of optimization range settings:

  • Range reference - The start moment for all subsequent work order range calculations. (The job's current time or the beginning of the job's current day).

  • Range offset - Amount of time that is added to the range reference to define the range start.

  • Range duration (days) - Number of days that are added to the range reference.

To simplify how range optimization is occurring, the following scenarios examine two different high-level situations where this would come into play.

Scenario 1:

You want to have requirements that are defined in the optimization scope that were created and scheduled within the next 24-hour period. However, you don't want any items that were created within the next hour. In other words, requirements are scheduled into a range starting Now + 1 hour and ending Now + 1 hour + 1 day (which might partly still be today).

Screenshot of Optimization Range Settings defined.

Scenario 2:

You want to have existing bookings that are defined in the optimization scope moved into the next two days. However, you don't want anything moved to today. In other words, bookings will be moved to a range starting 12:00 AM today + 1 day (tomorrow at 12:00 AM) and ending tomorrow at 12:00 AM + 2 Days.

Screenshot of working with existing bookings for scenario 2.

To further explore how range optimization works, the following scenarios provide deeper insight into how optimization range settings would affect bookings.

Screenshot of Bookings for this Optimization and Optimization Range Settings.

Five bookings (A, B, C, D, and E) are included in the Scheduling Summary - Scheduled by RSO-WA booking view when they're being scheduled, with the following configuration:

  • All five bookings might be moved into the optimization range start/end area if there's enough capacity.

  • Bookings locked to Time Range that overlap with the optimization range are moved. If the locked time range is outside of the optimization range, the booking is ignored.

Diagram of the Optimization Range Start and Optimization Range End.

If you add Now or After = 1 hour and other settings remain the same, then five bookings (A, B, C, D, E) are still included in the Scheduling Summary - Scheduled by RSO-WA booking view when they're being scheduled, with the following configuration.

Screenshot of Bookings for this Optimization and Optimization Range Settings configurations.

  • Only three bookings (C, D, E) might be moved into the optimization range start/end area if there's enough capacity.

  • Booking A is in the past before Now or After and is excluded from the scope.

  • Booking B overlaps with the Now or After line and is considered locked.

  • For a booking locked to Time Range, if a locked time range overlaps with the optimization range, the booking is moved. If the locked time range is outside of the optimization range, the booking is ignored.

Diagram of a locked time range used.

If you add Now or After = 4 hours and the other settings remain the same, then five bookings (A, B, C, D, E) are still included in the Scheduling Summary - Scheduled by RSO-WA booking view when they're being scheduled, with the following configuration:

  • Only two bookings (D, E) might be moved into the optimization range start/end area if there's enough capacity.

  • Bookings A and B are in the past before Now or After and are excluded from the scope.

  • Booking C overlaps with the Now or After line and is considered locked.

  • For a booking locked to Time Range, if a locked time range overlaps with the optimization range, the booking is moved. If the locked time range is outside of the optimization range, the booking is ignored.

Diagram of a Time range now or after.

If you add Now or After = 27 hours and the other settings remain the same, then five bookings (A, B, C, D, E) are still included in the Scheduling Summary - Scheduled by RSO-WA booking view when they're being scheduled, with the following configuration:

  • Only one booking (E) might be moved into the optimization range start/end area if there's enough capacity.

  • Bookings A, B, C, and D are in the past before Now or After and are excluded from the scope.

  • For a booking locked to Time Range, if the locked time range overlaps with the optimization range, the booking is moved. If the locked time range is outside of the optimization range, the booking is ignored.

Diagram of a booking being moved or ignored.

Viewing scope results

To better identify which resources, requirements, and bookings are affected based on the optimization scope, you can preview the items through the schedule board.

Screenshot of the filter on the schedule board pre-populated from the resource view and Icons indicating if resources are not able for optimization.

Resource filters on the schedule board are prepopulated from the resource view. The resource list matches the number of resources that are defined in the resource view. RSO displays a lock icon and tooltip to indicate if a resource isn't enabled for optimization (even though it was added into the resource view).

Requirements that are eligible for optimization match the records from the requirement view.

You can modify filters on the left panel and save them into the scope.

Screenshot of modify filters saved into the optimization scope referring to the same resource view.

If the resource view referred to by the optimization scope is a system view, then modified filters through the schedule board are saved as a new personal view.

If the resource view referred to by the optimization scope is a personal view, then modified filters through the schedule board are saved back into the same personal view.