Applies to: Dynamics 365 for Project Service Automation, Dynamics 365 for Field Service
Previously we introduced Universal Resource Scheduling in Dynamics 365. Regardless of what type of scheduling your organization is engaged in, be it Field Service scheduling, Project Service Scheduling, Case scheduling, Lead scheduling, or maybe something completely custom, Universal Resource Scheduling helps you book your skilled resources to the right work, at the right time, independent of workstream.
We are excited to share our latest features and enhancements for Universal Resource Scheduling.
Below you will find an overview (part 1) of these new features:
- Schedule Board Extensibility
- Schedule Board Sorting
- Schedule Board Extensions
- Specify a fulfillment pattern on a resource requirement
Schedule Board Extensibility
Schedule board and Schedule Assistant filters are now extensible!
- As our customers continued to request new filters and search criteria to the schedule board, many of which are unique to specific organizations, the answer became clear. We need powerful, flexible extensibility within the schedule board. As a result, we have opened up the queries we use to filter resources on the schedule board and when searching for availability. In addition to the backend queries being opened, we also enabled customers to modify the front-end filter control that resource managers interact with.
- Lastly, for schedule assistant searches, to allow customers to query and include different information related to the resource requirement when searching for availability, we have opened up the “Schedule assistant retrieve constraints query”. As a basic example, perhaps you added an attribute or an entity on the requirmeent called “required language”. In order to include this in your availability search, you will modify this query based on the resource requirement entity to include this in your search.
Resource cell content
- To complete the extensibility story, since the resource query is now open enabling our customers to query different information related to the resource, we also empowered our customers to modify the resource cell on the schedule board to incorporate this newly opened resource query and use powerful styling to display this information.
- This setup experience is meant for business administrators and developers with experience using fetchXML.
- Here are some screenshots depicting an example of what can be accomplished with extensibility.
- Here is how you can enable extensibility on your org.
- To modify the schedule board when not using schedule assistant, open up any schedule board to change the queries. If you would like to make a change that applies to all boards in the org, make sure to make the changes on the default schedule board.
- Here you can choose to change your filter layout, the resource cell template, and the query that retrieves information related to your resources. To add new information to the resource cell template, you will likely need to modify your “retrieve resources” query to include that information for consumption. To modify these items, select the “setting” icon next to the respective area.
- You can then modify the query within the configuration page, but it will be easier to copy the content into your preferred XML editing program, make your changes, and paste the modified configuration back into the configuration page. When you are done, click “Save As” since we do not allow overriding the default configuration records.
- These modified records are stored on a table called “configurations”.
- To modify the configuration records used when searching for availability, this is done on the default schedule board instead of being unique per board. You can have a completely different setup for each schedulable type. For example, you may have one set of information to display and include in your search when searching for a work order requirement vs a project requirement vs a case requirement.
- That should get you started, but there is an incredible amount to learn about how to actually modify these configuration records. Be on the lookout for follow up posts with developer focused documentation.
Schedule Board Sorting – With Extensibility!
Sorting – out of the box
- You will notice in the filter control that we have a sort control that is brand new to this release. This applies when using standard schedule board, and when searching for availability.
- Out of the box, we have enabled sorting by resource name, and by rating value, in ascending and descending order. Rating value is based on the total proficiency score of the characteristics entered in the filter control. If you do not have any characteristics entered, the “Rating Value” sort option will not apply.
- Below is our out of the box query showing how we added the sort options, but look out for a more detailed post on this subject.
Schedule Board Extensions
- Using the brand new Schedule Board Client Extension framework, you can now modify the CSS, add your own JS files, and localize the schedule board changing labels and wording on certain supported areas of the board. Look out for a blog post on the details surrounding this topic.
- To customize the schedule board using this framework, you can create a new “client extension” records. You can choose the type of extension, and choose to which schedule board you would like it to apply.
- If you are applying the customization to all boards, set the schedule board setting ID to the “default board”.
- You can always exclude certain boards from inheriting client extensions applied to the default board by disabling default extensions on that board.
- The “rank” field determines which customization applies in case of conflict.
Contour/Breakdown Resource Requirement
Specify a precise breakdown on how you would like a requirement to be fulfilled.
Previously, when creating a resource requirement to be scheduled, you were able to enter in a duration and establish that the duration needs to be fulfilled between certain dates. For example, 40 hours between Jan 1 and Jan 31. You were also able to select an allocation method on the requirement such as full capacity or front load, which breaks the requirement into a specific pattern for fulfillment. We have now introduced a tool specifically built for specifying precisely how you would like your requirement to be fulfilled.
- Select a requirement and click “specify pattern” on the ribbon.
- If you already have broken the resource requirement into requirement details by virtue of selecting an allocation method other than “none” on the resource requirement, you can select or drag each requirement detail and modify the date range or the duration expected to be booked during that date range.
- If you have not broken down the requirement, or if you have but you need to add a new requirement detail that does not exist, just drag empty space on the schedule board and create your breakdown.
- The changes and creation of new requirement details does not get saved until the user clicks “save” on top of the board, at which point validation logic will kick in and let you know if you made changes to the requirement details which do not match the requirement itself. The dates of the requirement details must fall within the requirement dates, and the duration on the requirement must match the aggregate duration of all the requirement details.
- Select multiple requirements from the resource requirement view to contour multiple requirements at once!
- We always contour in the time zone expressed on the requirement calendar. If you are contouring requirements in multiple time zones, or if you want to change the time zone in which you are breaking down your requirement, just change the “specify pattern” time zone.
- In case you are wondering what motivated us to add this feature now, read part 2 of this post to learn about our new multiday scheduling experience.
Thank you for taking the time to read about our July 2017 update. We are extremely excited about this release and we are looking forward to hearing your feedback! Make sure to read part two of this post.
Sr. Program Manager, Dynamics 365 Engineering