RSO configuration options

Completed

Security roles and settings

When RSO is deployed, the solution creates a new user called Resource Scheduling Optimization. This user is used to optimize items such as work order-related requirements and bookings. This user must be assigned to the Field Service - Administrator security role and added to the Field Service - Administrator field security profile. A security role called RSO Dispatcher, and the field security profile called Resource Scheduling Optimization - Dispatcher are also added to the organization. These roles need to be added to any dispatchers who interact with RSO to ensure that they can interact with RSO components on the schedule board and perform tasks such as running simulations and starting optimization jobs.

Users can be assigned to their required security role through the Power Platform Admin Center. In the Environments list, select the ellipsis next to the environment that you want to work with and then select Settings.

Animation of users being assigned to required security roles.

When in the environment settings, you can add users to security roles by selecting Users. Select the users whom you want to work with and then select Manage Roles to assign them to necessary security roles that they require.

Assigning users to field security profiles is done through advanced settings. In the Dynamics 365 Resource Scheduling Optimization application, select the Settings button (it looks like a gear). In the menu that appears, select Advanced settings, which opens the application in a new window. You can add users to the necessary field security profiles by going to Settings > Security > Field Security Profiles.

Booking status optimization configuration

Booking statuses are associated with all bookings that are created. Bookings represent scheduled items on the schedule board. Depending on the schedule that is configured, RSO can create new bookings and optimize existing bookings. Remember, not all bookings should be optimized. Some bookings are better left alone by the system. For example, when a technician is currently working on an item, it shouldn't be optimized because the technician is actively working on it. However, if a technician is scheduled to work on something but hasn't started on it yet, it could potentially be optimized.

Organizations can configure the optimization settings for any booking status that is defined in the system by going to Booking Statuses in the Resource Scheduling Optimization app.

Three optimization options are available:

  • Optimize - RSO is free to move this booking around.

  • Do Not Move - RSO doesn't alter the booking.

    • RSO preserves the estimated arrival time and assigned resource.

    • The booking's start time and estimated travel duration might be changed if RSO schedules a booking in a new location before the Do Not Move booking.

    • This option operates the same as if the user sets the booking to locked to resource + time on the Scheduling lock options field.

  • Ignore - RSO completely ignores this booking.

RSO ignores the booking for both location and time, meaning that overlaps occur. It's as if the booking doesn't exist. Use this option when the booking status is in the state of Proposed or Canceled.

Screenshot of Active Field Service Statuses with Optimization settings.

Frequently, after organizations configure scheduling methods, they find that items such as completed, canceled, or other types of bookings are being optimized when, in fact, they shouldn't be moved. The reason is because the scheduling method for booking statuses isn't configured correctly.

A typical setup resembles the following situations:

  • Scheduled = Optimized - Booking statuses indicating that something is scheduled or should be considered for moving should be set to Optimize. Out of the box, the Scheduled and Committed booking statuses are set to Optimize because those items represent statuses that could potentially be moved.

  • Canceled = Ignore - Booking statuses that represent something that is canceled should be set to Ignore. Because the item is canceled, RSO can assume that the time slot that the item was scheduled for is now available. This approach ensures that the slot can be filled with another booking that contains an optimization status that can be moved.

  • In Progress = Do not Move - Booking statuses that indicate that the visit is completed or is currently in some stage of progress should be set to Do Not Move. It's important that RSO knows that it shouldn't be moved. This method also ensures that other bookings aren't moved to that time slot and potentially create overlapped bookings.

    For example, a booking status that represents travel generally indicates that a technician is in route to a location. This item should be set to Do Not Move because the technician is actively working on that booking.

The same principle is applied to statuses that represent items that should be considered but not moved such as custom statuses that are created to represent items like time-off.

By spending some extra time understanding which booking statuses that an organization has and how those could be impacted when RSO runs ensures that bookings are being moved or not moved appropriately.

Resource optimization configuration

RSO only optimizes schedules of resources that are enabled for optimization. Each resource whose schedules are optimized needs to have that indication on their resource record. This indication is done in the Resource Scheduling Optimization application. Each resource record needs to have the Optimize Schedule field set to Yes on the Resource Scheduling Optimization tab of their resource record.

After enabling your resources for RSO, you need to ensure that each resource has valid latitude and longitudes defined based on their starting and ending locations.

  • Start Location - Defines where the resource begins their day. This setting is used to help with route mapping for the resource.

  • End Location - Defines where the resource ends their day. This setting is used to help with route mapping for the resource.

  • Organizational Unit - Defines the specific organization unit that the resource belongs to and is scheduled out of.

When defining a starting and ending location, you have three options that you can define:

  • Organizational Unit Address - Uses the latitude and longitude that are associated with the Organizational Units that the resource belongs to.

  • Resource Address - Uses the latitude and longitude that are associated with the corresponding record based on the resource type:

    • Resource Type - User - Uses the latitude and longitude that are associated with the address that is defined on their Microsoft 365 user record.

    • Resource Type - Contact - Uses the latitude and longitude that are associated with the address that is defined on their Dynamics 365 contact record.

    • Resource Type - Account - Uses the latitude and longitude that are associated with the address that is defined on their Dynamics 365 account record.

  • Location Agnostic - Doesn't have a specific location defined. This setting can be useful when resources don't have a clearly defined starting and ending location.

Screenshot of RSO used to assist in record assignment and schedule optimization.

Important

The start and end locations must have the same setting. For example, you cannot have the start location be a personal address and the end location be location agnostic.

Requirement optimization configuration

Requirements define what is required to schedule an item in the system. For example, when a work order is created, a resource requirement record is also created. To ensure that the optimization engine can schedule the resource requirement that is created, it needs to be enabled for optimization. This task can be completed by configuring the booking setup metadata for the work order entity. To configure the Booking Setup Metadata, go to Resource Scheduling Optimization > Administration > Enable Entities for Scheduling. After selecting the entity that you want to configure, you can set the default scheduling method to Optimize. For example, if the work order entity's Booking Setup Metadata is set to Optimize, every newly created work order and related resource requirement is configured to optimize automatically.

If you have existing resource requirement records that were created before the optimization setting was defined, you need to update the resource requirements scheduling method to be optimized. Go to Resource Scheduling Optimization > Resource Requirements, go to the unscheduled work order requirements view, select the existing requirements that you want to optimize, select Edit, and then set the Optimize Schedule field to Yes.

Screenshot of default setting defined on the Booking Setup Metadata entity and Requirement optimization setting on the existing resource requirement record.

Important

The work location must be set to on-site or location agnostic. If on-site is the requirement, latitude and longitude values must exist. These settings will typically be populated automatically to the work order based on the address of the account that the work order is associated with. Ensure that these values are being populated for any resource requirement that you want to schedule.