which users are not in any one group and have a 'abcd' role, I have to create a report

harivas
Tera Contributor

which users are not in any one group and have a 'abcd' role, I have to create a report on those users so for this I have written script in script include and called in reports but Iam not getting proper result but through background scripts I got expected results. 
which I written the script is:

function testmon(){
  var grMember = new GlideRecord('sys_user_grmember');
        grMember.query();

 

        var groupMembers = [];
        while (grMember.next()) {
            groupMembers.push(grMember.user.toString());
        }

 

        var user = new GlideRecord('sys_user');
        user.addQuery('sys_id', 'NOT IN', groupMembers);
        user.addQuery('roles', 'abcd'); // Add condition to check if user has 'resource' role
        user.query();

 

        var nonGroupMembers = [];
        while(user.next()) {
            nonGroupMembers.push(user.name.toString());
        }

 

        return nonGroupMembers;

}

Please can any one help me on this query.

 

1 ACCEPTED SOLUTION

The script include looks good to me! However, I see you now have a typo in the method name when calling it in the filter condition and also the javascript needs to be lowercase. 

 

 

View solution in original post

8 REPLIES 8

Could you also please attach a screenshot of your script include?

@Rene El Hamzh  Yes I have attached script include and report screen shot, Please find below

the script include script is :

var GetNonGroupMembers = Class.create();
GetNonGroupMembers.prototype = {
    initialize: function() {},

    getNonGroupMembers1: function() {
        var grMember = new GlideRecord('sys_user_grmember');
        grMember.query();

        var groupMembers = [];
        while (grMember.next()) {
            groupMembers.push(grMember.user.toString());
        }

        var user = new GlideRecord('sys_user');
        user.addQuery('sys_id', 'NOT IN', groupMembers);
        user.addQuery('roles', 'abcd');
        user.query();

        var nonGroupMembers = [];
        while (user.next()) {
            nonGroupMembers.push(user.name.toString());
        }

        return nonGroupMembers;
    },

    type: 'GetNonGroupMembers'
};

The script include looks good to me! However, I see you now have a typo in the method name when calling it in the filter condition and also the javascript needs to be lowercase. 

 

 

@Rene El Hamzh Thanks for your help it's working as expected.