Interactive Filter for "Me and My Team" on Incident tickets
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2024 02:39 AM
Hi All,
I need to create an Interactive filter which list as "Me" and "My Team" as option, so when i click "Me" the reports on the Dashboard should only list records related to me. If i choose "My Team" as option then the reports should display records related to my team. Kindly help me on this.
Thanks,
Lavanya
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-10-2024 02:54 AM
Interactive filters filter on one field. To achieve this you need to create a new dynamic filter, so you can create your interactive filter on the sys_user table and only returns your team members. After that you can just select yourself, or all. You can't just select yourself or your team, since 'your team' is not defined as a single user.
Script Include:
var TeamMembersDynamicFilter = Class.create();
TeamMembersDynamicFilter.prototype = {
initialize: function() {
},
// get all user IDs of the groups that the current user is a member of
getTeamMemberIDs: function() {
var memberIDs = [];
var grMember = new GlideRecord('sys_user_grmember');
grMember.addQuery('user', gs.getUserID());
grMember.query();
while (grMember.next()) {
var grUsers = new GlideRecord('sys_user_grmember');
grUsers.addQuery('group', grMember.group.toString());
grUsers.query();
while (grUsers.next()) {
// Avoid duplicates
if (!memberIDs.includes(grUsers.user.toString())) {
memberIDs.push(grUsers.user.toString());
}
}
}
return 'sys_idIN' + memberIDs.join(',');
},
type: 'TeamMembersDynamicFilter'
};
Dynamic Filter Option:
new TeamMembersDynamicFilter().getTeamMemberIDs();
Add this as reference to your interactive filter.
Please mark any helpful or correct solutions as such. That helps others find their solutions.
Mark