Interactive Filter for "Me and My Team" on Incident tickets

Lavanya Nagendr
Giga Guru

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

1 REPLY 1

Mark Manders
Mega Patron

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