Resource Management Workspace variant with multiple tabs

DavidB-ADT
Tera Guru

Sharing an idea we're pursuing to enhance the Resource Management Workspace (hoping to get on the roadmap, or have the SPM team hint that it's already there 😛 ).

 

Currently, RMW only shows a single tab with Resource Cards that only the current user owns/has created. Good for individual resource managers, but has a few limitations in our view:

  • No ability to share Resource Cards with other users. Each user has to create their own card with the same filters (and/or name).
  • Our resource management teams would like cards filtered by different resource attributes - primary group, primary role, primary skill, project, cost center, etc. We can do that, but unless we use a naming convention (e.g. Group | ServiceNow Team, or Role | Analysts), there's no way to easily filter or have collections of these different resource cards

One method we've found around the first limitation is to create a copy of the /api/sn_rm_ws/resource_management_workspace/createResourceBoard scripted API, and add 'owner' as an input parameter. From there we've been able to create a Flow Action to call that new API and then use a Flow to enumerate through all of our Resource Managers / Project Managers and automatically create resource cards for them with pre-set filter criteria (e.g. User.Active is true AND Manager is (dynamic) me).

 

For the second, we've done some digging and realized that the RMW uses data-driven tabs, meaning the tab and content is loaded from a Data Broker script (Get RM Workspace Tabs), which defines the single tab with a basic query to get board by the current user:

const tabs = [{
            "id": "my_resource_cards",
            "route": "resource_cards_tab",
            "fields": {
                "tabName": "my_resource_cards",
                "query": "owner=" + gs.getUserID()
            },
            "label": gs.getMessage("My Resource Cards"),
            "options": {}
        }
    ];

 

So, as part of a development spike, we decided to add a new custom field to the Resource Board table, what would allow us to categorize the capacity type being represented by the board (group, role, skill, resource, task). We then created a copy of the Data Broker script, and defined some, with the crux of their criteria being:

"tabName": "my_resource_cards",
"query": "owner=" + gs.getUserID()

"tabName": "group_cards",
"query": "u_capacity_type=group"

"tabName": "role_cards",
"query": "u_capacity_type=role"

"tabName": "skill_cards",
"query": "u_capacity_type=skill"

"tabName": "project_cards",
"query": "u_capacity_type=work_type"

After that, we cloned the 'home' page under RMW, and updated the Tabs component to point at the new Data Broker source.

 

Here's the result:

DavidBADT_0-1743790885004.png

DavidBADT_1-1743790914916.png

DavidBADT_0-1743791471516.png

 

DavidBADT_3-1743790966256.png

DavidBADT_4-1743790983894.png

These simplified tab queries obviously mean that all of these card types would be visible to all users, so we've still got some thinking to do around whether/how we could handle that. Right now, we think we would create all these capacity-type cards using flows, so users are only limited to creating cards that show up on the 'My Resource Cards' tab only.

2 REPLIES 2

Namita Mishra
ServiceNow Employee
ServiceNow Employee

Hi @DavidB-ADT ,

I like the way you have designed the workspace. However, I am not sure it's impact on the upgrade... Having said that I believe your version would be liked by users.

 

Great idea...

 

Thank You!

Namita Mishra

You bring up a point we're debating internally - does creating a variant of the landing page impact upgrades, or should we do this as a completely separate custom app, essentially maintaining a copy of the RMW app.

DavidBADT_0-1744211676604.png

I've argued in favor of the first option on the assumption that leaving the original 'home' intact allows us to still do upgrades. Our variant is just a slightly tweaked version of the original; worst case we could delete the variant, upgrade RMW, create a variant again and apply the customizations fairly easily again.