INTERACTIVE FILTER FOR GROUP USER
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Saturday
HI TEAM,
I HAVE ADDED FILTER FOR MY INCIDENT DAHBOARD
I HAVE ADDED FILTER FOR assignment group instead of that how can i display group user value i mean
if incident has assigned with 1lakh uers i need to filter with incident assigned to user with the group of ABC it is not related to assingnment group not assignment group can be anything i want to add a filter for example
incidnet assigned to is admin1
assignment group is france
so i need to find if assigned to is admin1 contains group of ABC
Only with the group with the users contains ABC i want to add a interactive filter how can i achieve
please note using sys_user table we cannot dot walk to display and map to group user display how can i achieve or it is onlly possible way is following adding user id to the breakdown and display value
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Sunday
PA can't reverse dot-walk from sys_user back to sys_user_grmember, which makes this tricky. Here are the practical approaches:
Approach 1: Breakdown Mapping Script (Recommended)
This is the cleanest PA-native way. You create a breakdown on sys_user_group and use a Breakdown Mapping Script to connect each incident to the groups its assigned_to user belongs to.
Steps:
-
Create a new PA Breakdown — set the table to
sys_user_group, display field toname. -
On your existing PA Indicator (for incidents), go to the Breakdown tab and add a Breakdown Mapping. Select the breakdown you created above.
-
In the Breakdown Mapping, set the Script field with something like:
// Breakdown Mapping Script
// Maps incident.assigned_to → sys_user_grmember → group
(function() {
var assignedTo = current.assigned_to + '';
if (!assignedTo) return [];
var groups = [];
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('user', assignedTo);
gr.query();
while (gr.next()) {
groups.push(gr.getValue('group'));
}
return groups;
})();
- Once the breakdown mapping is scored (via the PA data collector job), you can add this breakdown as an interactive filter on your dashboard — it will show group names, and selecting "ABC" will filter to only incidents where the assigned_to user is a member of group ABC.
Caveat: Breakdown mapping scripts run during PA data collection, so they can be slow if you have a very large incident volume. Also, the filter reflects data as of the last collection run, not real-time.
Approach 2: Custom Field + Business Rule (Simpler, More Performant)
If you need real-time filtering or have a very large dataset:
-
Add a custom List field (e.g.,
u_assigned_to_groups) on theincidenttable referencingsys_user_group. -
Create a Business Rule (before insert/update, when
assigned_tochanges) that populates this field:
(function executeRule(current, previous) {
var groups = [];
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('user', current.assigned_to);
gr.query();
while (gr.next()) {
groups.push(gr.getValue('group'));
}
current.u_assigned_to_groups = groups.join(',');
})(current, previous);
- Create a PA Breakdown on
incident.u_assigned_to_groupsand use it as your interactive filter.
Downside: You need to backfill existing records and the field needs maintenance if users change groups.
Approach 3: Display Value on Breakdown (What You Mentioned)
Adding user sys_ids to the breakdown and overriding the display value is technically possible but messy — you'd still face the same mapping problem, and the filter would show user names rather than group names.
Bottom line: Approach 1 (Breakdown Mapping Script) is the most standard PA way to achieve this without modifying the incident table. If performance is a concern or you need near-real-time filtering, go with Approach 2. Both let you add the result as an interactive dashboard filter exactly like the one you already have for Assignment Group.
