Customizing the Schedule Board Filter for Project Service Automation

The Schedule Board in Microsoft Dynamics 365 Project Service Automation (PSA) is a great tool for finding resources to staff your projects.

Table of Content

    The Schedule Board in Microsoft Dynamics 365 Project Service Automation (PSA) is a great tool for finding resources to staff your projects. The filter on the left panel of the Schedule Board allows the user to filter the resources that appear.

    By default, the filter panel allows the user to filter based on eight different fields:

    • Characteristics
    • Roles
    • Territories
    • Organizational units
    • Resource types
    • Pool types
    • Teams
    • Business units

    Some of these filters may be unnecessary for scheduling your projects. For example, territory may not have bearing on scheduling projects and is only taking up space on the filter. To optimize the user experience, the filter can be modified to add and remove fields.

    Dynamics 365 PSA schedule board

    To modify the filter, navigate to the Other Settings section of the Tab Settings of the Schedule Board. The Filter Layout field controls which fields appear in the filter and is written in Universal FetchXML (UFX). Use the Save As button to create a different layout which can be used on the current tab and other tabs as well. Editing the UFX is easiest in a code editor such as Visual Studio Code or Notepad++.

    Dynamics 365 PSA field settings

    Removing Fields from the Dynamics 365 PSA Schedule Board

    Removing fields from the filter is an easy task. Each field in the filter is listed in the code between control elements. For example, removing the following line of code will remove the territory field from the filter:

    <control type=”combo” source=”entity” key=”Territories” unspecified-key=”UnspecifiedTerritory” label-id=”ScheduleAssistant.West.Territories” entity=”territory” multi=”true” />

    For more complex controls that provide a drop-down list of values, the entire contents between <control and </control> should be removed.

    Adding Fields to the Dynamics 365 PSA Schedule Board

    Adding fields to the filter requires more effort, because the additional fields also must be added to the filter query. The Retrieve Resources Query is the field that contains the UFX controlling the search criteria of the filter. If you remove fields from the filter, the Retrieve Resources Query does not need to be modified. If you add fields to the filter, then you must also add them to the Retrieve Resources Query.

    Customizing the Schedule Board Scenario

    Let’s examine a scenario in which you have particular resources that you would like booked on projects before other resources are booked in order to guarantee they meet their utilization targets. To allow users to find these resources, you would like to add a filter to the Schedule Board that finds resources with a target utilization greater than a user provided value.

    First, update the Filter Layout to add the field like this:

    <control type=”number” key=”TargetUtilization” label-id=”Utilization Target” entity=”bookableresource” attribute=”msdyn_targetutilization” />

    Second, update the Retrieve Resources Query to include a filter for the target utilization like this:

    <condition attribute=”msdyn_targetutilization” operator=”ge” ufx:if=”$input/TargetUtilization”>

    <ufx:value select=”$input/TargetUtilization” attribute=”value”/>

    </condition>

    With these minor updates, the filter will now allow you to search for resources based on target utilization. Depending on the type of field you would like to add to the filter, the query updates can become more complex. Microsoft has published a step by step guide for a more complex scenario using a linked entity. You can also reach out to a Velosio consultant with any questions.

    Ready to take action?

    Talk to us about how Velosio can help you realize business value faster with end-to-end solutions and cloud services.

    "*" indicates required fields

    This field is for validation purposes and should be left unchanged.