Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

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.