{"id":32495,"date":"2022-09-02T14:07:40","date_gmt":"2022-09-02T08:37:40","guid":{"rendered":"https:\/\/www.inogic.com\/blog\/?p=32495"},"modified":"2022-09-02T16:52:44","modified_gmt":"2022-09-02T11:22:44","slug":"schedule-board-extensibility-in-microsoft-dynamics-365-field-service","status":"publish","type":"post","link":"https:\/\/www.inogic.com\/blog\/2022\/09\/schedule-board-extensibility-in-microsoft-dynamics-365-field-service\/","title":{"rendered":"Schedule Board Extensibility in Microsoft Dynamics 365 Field Service"},"content":{"rendered":"<p>The Dynamics 365 Schedule Board provides an ability to view resources and schedule\/book them for particular Work Items. As per the business scenarios, the preferences for the dispatcher differ in the real-world scenarios, and Field Service within Dynamics 365 allows us to be flexible and customize the Schedule Board as per the business need.<\/p>\n<p>Dynamics 365 Field Service Schedule board now has a new and improved User Experience, which makes Dispatchers efficiently and accurately assign the Resources to their work.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32508\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/1Dynamics-365-Field-Service-1.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1103\" height=\"606\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/1Dynamics-365-Field-Service-1.jpeg 1103w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/1Dynamics-365-Field-Service-1-300x165.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/1Dynamics-365-Field-Service-1-1024x563.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/1Dynamics-365-Field-Service-1-768x422.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/1Dynamics-365-Field-Service-1-660x363.jpeg 660w\" sizes=\"(max-width: 1103px) 100vw, 1103px\" \/><\/p>\n<p>In this blog, we will walk through to check how to customize our schedule board and make it more efficient for Dispatcher, by adding Custom Controls to the Filter Layout and filtering the Resource based on those filters. This will help dispatchers easily find suitable Resources in order to accomplish the Work in all aspects.<\/p>\n<p>We will add different types of controls such as Textbox, Lookup, Option set, Multi-Select Option set, Number, etc. on the Filters Panel on the left-hand side of the schedule board and filter the Resources on the Schedule Board.<\/p>\n<p>This requires changes in the \u201c<strong>Filter Layout Query<\/strong>\u201d and \u201c<strong>Retrieve Resources Query<\/strong>\u201d XML Queries in the Schedule Board Settings, which uses <strong>Unified Fetch XML<\/strong> language to build the queries.<\/p>\n<p>Now, let\u2019s see how to achieve our requirement by modifying the Queries in CRM.<\/p>\n<p>Note: As we know there is an OOB Initial Public View Schedule Board tab on the Dynamics365 Field Service Schedule Board and it is recommended not to update the Queries of this Schedule Board tab, we will add a new Custom Schedule Board tab, and customize the same as per the business requirements.<\/p>\n<p>Please follow the below-listed steps in order to customize the New Schedule Board tab in the Dynamics 365 CRM:<\/p>\n<p>1. Navigate to the Schedule Board\u2019s tab \u201cCustomized Schedule Board\u201d and click on Board Settings as shown in the below screenshot.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32507\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/2Dynamics-365-Field-Service.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1437\" height=\"791\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/2Dynamics-365-Field-Service.jpeg 1437w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/2Dynamics-365-Field-Service-300x165.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/2Dynamics-365-Field-Service-1024x564.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/2Dynamics-365-Field-Service-768x423.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/2Dynamics-365-Field-Service-660x363.jpeg 660w\" sizes=\"(max-width: 1437px) 100vw, 1437px\" \/><\/p>\n<p>2. In the Board Settings window, click on the Other option where we can see the settings for Filter Layout, Resource Cell Template, Retrieve Resource Query, etc.<br \/>\nPlease refer to the below screenshot for the same.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32506\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/3Dynamics-365-Field-Service.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1437\" height=\"785\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/3Dynamics-365-Field-Service.jpeg 1437w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/3Dynamics-365-Field-Service-300x164.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/3Dynamics-365-Field-Service-1024x559.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/3Dynamics-365-Field-Service-768x420.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/3Dynamics-365-Field-Service-660x361.jpeg 660w\" sizes=\"(max-width: 1437px) 100vw, 1437px\" \/><\/p>\n<p>3. Now we will update the Filter Layout Query in order to add our additional custom control to the Filter Layout Panel. (Instead of updating the default OOB queries, we will copy the default Query and create a custom query with additional required changes).<br \/>\nClick on the Edit symbol for the \u201cDefault Filter Layout (Default)\u201d Query and copy the XML shown in the below screenshot.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32505\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/4Dynamics-365-Field-Service.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1435\" height=\"781\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/4Dynamics-365-Field-Service.jpeg 1435w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/4Dynamics-365-Field-Service-300x163.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/4Dynamics-365-Field-Service-1024x557.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/4Dynamics-365-Field-Service-768x418.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/4Dynamics-365-Field-Service-660x359.jpeg 660w\" sizes=\"(max-width: 1435px) 100vw, 1435px\" \/><\/p>\n<p>4. Now, we will create New Filter Layout by clicking on the + symbol and pasting the XML Query as we have in the default Filter Layout Query.<br \/>\nPlease refer to the below screenshot for the same.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32504\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/5Dynamics-365-Field-Service.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1439\" height=\"785\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/5Dynamics-365-Field-Service.jpeg 1439w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/5Dynamics-365-Field-Service-300x164.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/5Dynamics-365-Field-Service-1024x559.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/5Dynamics-365-Field-Service-768x419.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/5Dynamics-365-Field-Service-660x360.jpeg 660w\" sizes=\"(max-width: 1439px) 100vw, 1439px\" \/><\/p>\n<p>5. We will add various types of controls in the Filter Panel by adding the below listed Control tags in the Filter Layout Query XML.<\/p>\n<p>&#8211; Textbox control for \u201cPreferred Resource Name\u201d: This will be used to filter out particular resources by name.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;control type=\"text\" key=\"PreferredResourceName\" label-id=\"Preferred Resource Name\" \/&gt;<\/pre>\n<p>&#8211; Number control \u201cResource Utilization\u201d: This will be for filtering resources based on the Target Utilization attribute of the Bookable Resource.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;control type=\"number\" key=\"ResourceUtilization\" label-id=\"Resource Utilization\" \/&gt;<\/pre>\n<p>&#8211; Two Option control \u201cOnsite Resource?\u201d: This will be for filtering resources that are Onsite based on Resource Location.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;control type=\"boolean\" key=\"IsOnsite\" label-id=\"Onsite Resource?\"\u00a0 \/&gt;<\/pre>\n<p>&#8211; Option Set control for \u201cCrew Strategy\u201d: This will filter the Crew type resource with specified Crew Strategy. Note that in order to use the multi-select option set will add a multi-property of the same control as true.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;control type=\"combo\" source=\"optionset\" key=\"crewstrategy\" label-id=\"Crew Strategy\" entity=\"bookableresource\" attribute=\"msdyn_crewstrategy\" multi=\"true\"&gt;\r\n\r\n&lt;data&gt;\r\n\r\n&lt;value id =\"192350000\" \/&gt;\r\n\r\n&lt;value id =\"192350001\" \/&gt;\r\n\r\n&lt;value id =\"192350002\" \/&gt;\r\n\r\n&lt;\/data&gt;\r\n\r\n&lt;\/control&gt;<\/pre>\n<p>The Data tag will include all values with optionset value from the \u201cmsdyn_crewstrategy\u201d field in the CRM.<\/p>\n<p>&#8211; Duration control for \u201cWorking Hours\u201d: For this control, we have added a custom column attribute \u201cWorking Hours\u201d on the Bookable Resource and this control\u2019s value will be used to filter resources on the schedule board.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;control type=\"duration\" key=\"WorkingHours\" label-id=\"Working Hours\" min=\"1\"\/&gt;<\/pre>\n<p>&#8211; Date Time control for \u201cResource Availability\u201d: This will be used to check for Resources whose are not added a Time Off r on the selected date.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;control type=\"datetime\" key=\"AvailableDate\" label-id=\"Non Available Resource\" \/&gt;<\/pre>\n<p>&#8211; Lookup control for \u201cFunctional Location\u201d: For this, we have added a custom N: N relationship for Functional Location and the Bookable Resource entities. In addition, this control will be used to filter out resources based on the Functional locations selected in the filter panel.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;control type=\"combo\" source=\"entity\" key=\"FunctionalLocations\" label-id=\"Functional Location\" entity=\"msdyn_functionallocation\" multi=\"true\" \/&gt;<\/pre>\n<p>Therefore, after adding these controls to the \u201cCustom \u2013 Filter Layout Query\u201d, the final XML Query will look as shown in the below screenshot.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32503\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/6Dynamics-365-Field-Service.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1407\" height=\"707\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/6Dynamics-365-Field-Service.jpeg 1407w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/6Dynamics-365-Field-Service-300x151.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/6Dynamics-365-Field-Service-1024x515.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/6Dynamics-365-Field-Service-768x386.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/6Dynamics-365-Field-Service-660x332.jpeg 660w\" sizes=\"(max-width: 1407px) 100vw, 1407px\" \/><\/p>\n<p>6. Now, will add this filter Layout Query XML in the Board Setting for the \u201cCustomized Schedule Board\u201d schedule board tab.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32502\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/7Dynamics-365-Field-Service.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1439\" height=\"789\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/7Dynamics-365-Field-Service.jpeg 1439w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/7Dynamics-365-Field-Service-300x164.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/7Dynamics-365-Field-Service-1024x561.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/7Dynamics-365-Field-Service-768x421.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/7Dynamics-365-Field-Service-660x362.jpeg 660w\" sizes=\"(max-width: 1439px) 100vw, 1439px\" \/><\/p>\n<p>Once we save the query and refresh the schedule board, all the above-listed controls will be added to the Filter Panel. Please refer to the below screenshot for the same.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32501\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/8Dynamics-365-Field-Service.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1439\" height=\"781\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/8Dynamics-365-Field-Service.jpeg 1439w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/8Dynamics-365-Field-Service-300x163.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/8Dynamics-365-Field-Service-1024x556.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/8Dynamics-365-Field-Service-768x417.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/8Dynamics-365-Field-Service-660x358.jpeg 660w\" sizes=\"(max-width: 1439px) 100vw, 1439px\" \/><\/p>\n<p>7. We have now done adding the controls in the Filter Panel, but we have to work on filtering the Resources based on the control values when we click Apply button.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32500\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/9Dynamics-365-Field-Service.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1439\" height=\"789\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/9Dynamics-365-Field-Service.jpeg 1439w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/9Dynamics-365-Field-Service-300x164.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/9Dynamics-365-Field-Service-1024x561.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/9Dynamics-365-Field-Service-768x421.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/9Dynamics-365-Field-Service-660x362.jpeg 660w\" sizes=\"(max-width: 1439px) 100vw, 1439px\" \/><\/p>\n<p>So, will take a copy of the default Retrieve Resources Query and update it to an XML query with the below-listed conditions for each control from Filter Panel:<\/p>\n<p>&#8211; Preferred Resource Name: This will filter the Resource having the name same as specified in the filter control. For this will add the below condition in the XML.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;condition attribute=\"name\" operator=\"eq\" ufx:if=\"$input\/PreferredResourceName\"&gt;\r\n\r\n&lt;ufx:value select=\"$input\/PreferredResourceName\" attribute=\"value\" \/&gt;\r\n\r\n&lt;\/condition&gt;<\/pre>\n<p>Note that ufx: if is used to mention this filter condition will be applied only if the PreferredResourceName control has values. (PreferredResourceName is the value that we added in the Key attribute within the control tag of \u201cFilter Layout Query\u201d)<\/p>\n<p>&#8211; Resource Utilization: This will filter Resources having Target Utilization greater than the provided value in the filter control.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;condition attribute=\"msdyn_targetutilization\" operator=\"gt\" ufx:if=\"$input\/ResourceUtilization\" &gt;\r\n\r\n&lt;ufx:value select=\"$input\/ResourceUtilization\" attribute=\"value\" \/&gt;\r\n\r\n&lt;\/condition&gt;<\/pre>\n<p>&#8211; Onsite Resource?: This filter will check if the Resource\u2019s Start Location is not equal to Location Agnostic.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;condition attribute=\"msdyn_startlocation\" operator=\"ne\" value=\"690970002\" ufx:if=\"$input\/IsOnsite = 'true'\" \/&gt;<\/pre>\n<p>&#8211; Crew Strategy: This will filter the Resources having the Crew Strategy with any of the options from the values selected in the Filter control.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;condition attribute=\"msdyn_crewstrategy\" operator=\"in\" ufx:if=\"$input\/crewstrategy\/bag\/option\"&gt;\r\n\r\n&lt;ufx:apply select=\"$input\/crewstrategy\/bag\/option\"&gt;\r\n\r\n&lt;value&gt;\r\n\r\n&lt;ufx:value select=\"$input\/crewstrategy\/bag\/option\" \/&gt;\r\n\r\n&lt;\/value&gt;\r\n\r\n&lt;\/ufx:apply&gt;\r\n\r\n&lt;\/condition&gt;<\/pre>\n<p>&#8211; Working Hours: This filter will search for Resources having working hours equal to the specified duration in the \u201cWorking Hours\u201d control of the Filter Panel.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;condition attribute=\"new_workinghours\" operator=\"lt\" ufx:if=\"$input\/WorkingHours\"&gt;\r\n       &lt;ufx:value select=\"$input\/WorkingHours\" attribute=\"value\" \/&gt;\r\n&lt;\/condition&gt;<\/pre>\n<p>&#8211; Non-Available Resource: This filter will check the resources not having the Time Off Request on the Date, which is selected in the filter control on the schedule board.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;link-entity name=\"msdyn_timeoffrequest\" from=\"msdyn_resource\" to=\"bookableresourceid\" link-type=\"inner\" alias=\"ae\" ufx:if=\"$input\/AvailableDate\"&gt;\r\n&lt;filter type=\"and\"&gt;\r\n&lt;condition attribute=\"msdyn_starttime\" operator=\"on\" ufx:if=\"$input\/AvailableDate\"&gt;\r\n&lt;ufx:value select=\"$input\/AvailableDate\" attribute=\"value\"\/&gt;\r\n&lt;\/condition&gt;\r\n&lt;\/filter&gt;\r\n&lt;\/link-entity&gt;<\/pre>\n<p>&#8211; Functional Location: For this scenario, we have created an N: N relationship between Resource and Functional Location entities and associated the Functional Locations with various Bookable Resources in CRM.<\/p>\n<p>This filter will retrieve the resource having any Functional Locations selected in the control on the schedule board.<\/p>\n<pre class=\"lang:css gutter:true start:1\">&lt;link-entity name=\"new_br_msdyn_functionallocation\" from=\"bookableresourceid\" to=\"bookableresourceid\" visible=\"false\" intersect=\"true\" ufx:if=\"$input\/FunctionalLocations\/bag\"&gt; \r\n&lt;link-entity name=\"msdyn_functionallocation\" from=\"msdyn_functionallocationid\" to=\"msdyn_functionallocationid\" alias=\"FLocations\" ufx:if=\"$input\/FunctionalLocations\/bag\"&gt;\r\n         &lt;filter type=\"and\"&gt;\r\n&lt;condition operator=\"in\" attribute=\"msdyn_functionallocationid\" ufx:if=\"$input\/FunctionalLocations\/bag\"&gt;\r\n                &lt;ufx:apply select=\"$input\/FunctionalLocations\/bag\"&gt;\r\n                  &lt;value&gt;\r\n                    &lt;ufx:value select=\"@ufx-id\"\/&gt;\r\n                  &lt;\/value&gt;\r\n                &lt;\/ufx:apply&gt;\r\n              &lt;\/condition&gt;\r\n          &lt;\/filter&gt;\r\n          &lt;\/link-entity&gt;\r\n   &lt;\/link-entity&gt;<\/pre>\n<p>Therefore, the Overall Retrieve Resource Query includes changes as per the above-listed control filters as shown in the below screenshot.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32499\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/10Dynamics-365-Field-Service-1.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1431\" height=\"755\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/10Dynamics-365-Field-Service-1.jpeg 1431w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/10Dynamics-365-Field-Service-1-300x158.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/10Dynamics-365-Field-Service-1-1024x540.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/10Dynamics-365-Field-Service-1-768x405.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/10Dynamics-365-Field-Service-1-660x348.jpeg 660w\" sizes=\"(max-width: 1431px) 100vw, 1431px\" \/><\/p>\n<p>8. Save the changes and Refresh the Schedule Board. Now we can try various combinations based on the filters added in the Filter Panel to retrieve the required Resource on the Schedule Board.<\/p>\n<p>Please refer to the below screenshot for the same.<\/p>\n<p><img decoding=\"async\" class=\"alignnone size-full wp-image-32497\" style=\"border: 1px solid #0a0a0a; padding: 1px; margin: 1px;\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/11Dynamics-365-Field-Service.jpeg\" alt=\"Dynamics 365 Field Service\" width=\"1435\" height=\"787\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/11Dynamics-365-Field-Service.jpeg 1435w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/11Dynamics-365-Field-Service-300x165.jpeg 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/11Dynamics-365-Field-Service-1024x562.jpeg 1024w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/11Dynamics-365-Field-Service-768x421.jpeg 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/11Dynamics-365-Field-Service-660x362.jpeg 660w\" sizes=\"(max-width: 1435px) 100vw, 1435px\" \/><\/p>\n<h2>Conclusion<\/h2>\n<p>These Filter Layout Query, and Retrieve Resources Query allow us to extend the features of the Schedule Board by adding additional controls required for business requirements.<\/p>\n<p><a href=\"https:\/\/www.maplytics.com\/blog\/field-sales-field-service-management-with-real-time-location-tracking-and-check-in-check-out-enhancements\/\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" class=\"alignnone  wp-image-32516\" src=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/Untitled-design-2-1.png\" alt=\"\" width=\"824\" height=\"206\" srcset=\"https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/Untitled-design-2-1.png 800w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/Untitled-design-2-1-300x75.png 300w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/Untitled-design-2-1-768x192.png 768w, https:\/\/www.inogic.com\/blog\/wp-content\/uploads\/2022\/09\/Untitled-design-2-1-660x165.png 660w\" sizes=\"(max-width: 824px) 100vw, 824px\" \/><\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Dynamics 365 Schedule Board provides an ability to view resources and schedule\/book them for particular Work Items. As per the business scenarios, the preferences for the dispatcher differ in the real-world scenarios, and Field Service within Dynamics 365 allows us to be flexible and customize the Schedule Board as per the business need. Dynamics\u2026 <span class=\"read-more\"><a href=\"https:\/\/www.inogic.com\/blog\/2022\/09\/schedule-board-extensibility-in-microsoft-dynamics-365-field-service\/\">Read More &raquo;<\/a><\/span><\/p>\n","protected":false},"author":13,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"om_disable_all_campaigns":false,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[18,2361],"tags":[2626],"class_list":["post-32495","post","type-post","status-publish","format-standard","hentry","category-dynamics-365-v9-2","category-technical","tag-microsoft-dynamics-365-field-service"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts\/32495","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/comments?post=32495"}],"version-history":[{"count":0,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/posts\/32495\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/media?parent=32495"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/categories?post=32495"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.inogic.com\/blog\/wp-json\/wp\/v2\/tags?post=32495"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}