knowledgecenter-breadcrum

Knowledge Center

25 Sep, 2025

How To Extend Schedule Board With Custom Filters In D365 Project Operations / Field Service

Posted on 25 Sep, 2025 by Javed Shaikh, Posted in Project Management Dynamics 365 Project Service Automation Dynamics 365 Field Service Dynamics 365

SB_Details Blogs

Introduction:

The Schedule Board in Dynamics 365 Field Service and Project Operations is an essential tool for efficiently managing resource assignments. Out of the box, users can filter resources by roles, skills, territories, and more.

However, unique business requirements may call for custom filtering, such as filtering by Region, Department, etc. This blog details a step-by-step approach to achieve this, empowering organizations to tailor the resource scheduling experience to their needs.

Requirement:

The customer wants to filter resources on the Schedule Board by custom fields – Region and Department, in addition to standard fields such as roles, business units, and territories.

We will walk through step-by-step instructions to add a custom filter Department to the Schedule Board in D365 Project Operations.

Step 1: Establish Entity Relationships

We need to establish a relationship between the Resource (bookableresource) and Department (nisl_department) entity.

  1. Create a custom entity called Department (nisl_department).
    Fields: nisl_departmentid (primary key), Name (nisl_name) are automatically created.

     
  2. Create a field on the Resource entity.
    Field Name: Department (nisl_department)
    DataType: Lookup
    à Department table

The Schedule Board filter passes selected department identifiers (IDs) to the query engine. By linking Resources records to the Department entity, the system can evaluate which resources match the selected filter criteria.

Step 2: Update Filter Layout (Add Department Filter)

The Filter Layout XML governs which filters are visible in the Schedule Board UI.

Navigate to Project Operations App à Schedule Board in sitemap à Select SJM Schedule Board à Click on “:” dots à Select Board Setting.

The Board Settings Dialog box will appear. Select Other from sitemap à Scroll down à Under Filter Layout, click on the “ + ” icon. You can also edit the existing filter.

Add the following code inside the tag:

<control type="combo" source="entity" key="ResourceDepartment" label-id="Department" entity="nisl_department" multi="true" />

Here,

  • key="ResourceDepartment"  à the key used in the Retrieve Resource Query ($input/ResourceDepartment).
  • entity="nisl_department"  àdetermines that filter values are sourced from the custom Department entity.
  • multi="true" → allows selecting multiple countries at once

Open Visual Studio Code àAdd the above code as shown below:

Copy the code and paste it inside the filter layout, and click on the Save as new button shown in the image below.

After adding the Resources filter layout, click on the Save button and refresh the form.

This Filter Layout XML snippet introduces a new dropdown filter for Department. When users select departments from the filter panel, their GUIDs are pushed into the scheduling query.

 

 

 

 

 

 

 

 

 

 

Step 3: Modify the Retrieve Resource Query

Next, extend the Universal FetchXML (UFX) for resource retrieval, enabling filtering by the selected Department.

Like Filter Layout, we will add the Retrieve Resource Query under the Board Settings.

Add a link-entity and a filter condition for Department as follows:

<link-entity ufx:if="$input/ResourceDepartment/bag" name="nisl_department" from="nisl_departmentid" to="nisl_department" link-type="inner" alias="department">

<attribute name="nisl_departmentid" alias="departmentid" groupby="true" />

<attribute name="nisl_name" alias="departmentName" groupby="true" />

<filter>

<condition attribute="statecode" operator="eq" value="0" />

filter>

link-entity>

<filter type="and" >

<condition ufx:if="$input/ResourceDepartment/bag" entityname="bookableresource" attribute="nisl_department" operator="in">

<ufx:apply select="$input/ResourceDepartment/bag">

<value>

<ufx:value select="@ufx-id" />

value>

ufx:apply>

condition>

filter>

Retrieve Resource Code Image:

The Board Settings Dialog box will appear. Select Other from sitemap à Scroll down à Under Retrieve resource query, click on the “ + ” icon. You can also edit the existing query.

Copy the code for the Retrieve resource query and paste it inside the SJM Retrieve Resource Query, and click on the Save as new button shown in the image below.

After adding the Retrieve Resource Query, click on the Save button and refresh the form.

 

 

 

 

 

 

 

 

 

 

 

Step 4: Test the Department Filter

After updating both the Filter Layout and Retrieve Resource Query:

  • Save the Schedule Board tab configuration.
  • Refresh the Schedule Board; the Department filter appears in the sidebar.
  • Assign Department values to Bookable Resource records.

The matched resources will be filtered and appear as shown below:

Summary:

  • The Filter Layout XML defines the UI panel, generating the $input/ResourceDepartment/bag variable.
  • Selecting a department passes its GUID(s) to the Retrieve Resource Query.
  • The Universal FetchXML logic ensures only matching resources are surfaced for assignment.

 

Conclusion:

With this technique, users can make the Schedule Board more flexible and align it perfectly with their organization’s unique scheduling needs.

Comment

This is a Required Field

Loading

Recent Updates

Blogs
01 Dec, 2025

Dynamics 365: Why One User Could Edit a Field and Another Couldn’t

Recently, we faced an issue in Dynamics 365 where the field was locked for one user but editable for another. The field…

READ MORE
Blogs
18 Nov, 2025

Building a Power Apps Code-First Application from Scratch: A Step-by-Step Guide

Introduction: Power Apps has long supported rapid app development with low-code/no-code tools. With Code-First Apps, developers can now create fully…

READ MORE
Blogs
16 Oct, 2025

Bug Logging in Azure DevOps

Logging bugs in Azure DevOps is an essential part of the software testing and development process. It allows teams to…

READ MORE