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.

returning null for problem coordinator

Deepika54
Tera Contributor

Hello Experts,

 

From a specific group, i am trying to find out the uses who have the problem cordinator role. My script is always returning undefined. Can anyone please help

 
var arr=[];
var groupMembers = new GlideRecord('sys_user_grmember');
    groupMembers.addQuery('group', '514b79b39335ee109fa4d2fbb9373c6a');
    groupMembers.query();
 
    while (groupMembers.next()) {
 
        var user = groupMembers.user;
        // Check if the user has problem_coordinator role
        var hasRole = new GlideRecord('sys_user_has_role');
        hasRole.addQuery('user', user).addCondition('role.name','problem_coordinator')
        hasRole.query();
 
        if (hasRole.hasNext()) {
 
var gr=new GlideRecord('sys_user');
if(gr.get(hasRole.user.toString()))
{
 
arr.push(gr.email.toString());
 
            
 
 
 
}
}
}
            gs.print(arr);
1 ACCEPTED SOLUTION

Chaitanya ILCR
Mega Patron
var arr = [];
var users = [];
var groupMembers = new GlideRecord('sys_user_grmember');
groupMembers.addQuery('group', '514b79b39335ee109fa4d2fbb9373c6a');
groupMembers.query();
while (groupMembers.next()) {
    users.push(groupMembers.getValue('user'));
}

var hasRole = new GlideRecord('sys_user_has_role');
hasRole.addEncodedQuery('userIN' + users.join() + '^role.name=problem_coordinator');
hasRole.query();
while (hasRole.next()) {
    if (hasRole.user.email)
        arr.push(hasRole.user.email);
}
gs.print(arr.toString())

 

Hi @Deepika54 

try this script

 

 

Please mark my answer as helpful/correct if it resolves your query.

Regards,
Chaitanya

View solution in original post

1 REPLY 1

Chaitanya ILCR
Mega Patron
var arr = [];
var users = [];
var groupMembers = new GlideRecord('sys_user_grmember');
groupMembers.addQuery('group', '514b79b39335ee109fa4d2fbb9373c6a');
groupMembers.query();
while (groupMembers.next()) {
    users.push(groupMembers.getValue('user'));
}

var hasRole = new GlideRecord('sys_user_has_role');
hasRole.addEncodedQuery('userIN' + users.join() + '^role.name=problem_coordinator');
hasRole.query();
while (hasRole.next()) {
    if (hasRole.user.email)
        arr.push(hasRole.user.email);
}
gs.print(arr.toString())

 

Hi @Deepika54 

try this script

 

 

Please mark my answer as helpful/correct if it resolves your query.

Regards,
Chaitanya