We've updated the ServiceNow Community Code of Conduct, adding guidelines around AI usage, professionalism, and content violations. Read more

How to add the users in group using schedule job

anilkumarsharma
Giga Guru

Hi Team

@Ankur Bawiskar 

 

I want to add the  CI system manager of manager in group like (CMDB_USER)  based on CI which are available in Check result table.

for this requirement i have written the code but it is not working when i add the line if (userArray[u].length > 0) then it is not working.

 

var arruser=[];
var gr= new GlideAggregate('sn_vulc_result');
gr.addAggregate('COUNT');
gr.groupBy('cmdb_ci');
gr.query();
gs.info("get Count:"+gr.getRowCount());
while(gr.next()){
var grCi= new GlideRecord('cmdb_ci');
 grCi.addQuery('sys_id',gr.cmdb_ci);
 grCi.query();
while (grCi.next()){
//gs.info("CI Manager:"+grCi.u_cimanager.manager.getDisplayValue());
arruser.push(grCi.u_cimanager.manager);
  }
}
// new code will start here
    var arrayUtil = new global.ArrayUtil();
    userArray = arrayUtil.unique(arruser);
        gs.warn('userArray.length after unique = ' + userArray.length);
        var u;
        for (u = 0; u < userArray.length; u++) {
 //gs.info("print value1:"+userArray[u]);
 if (userArray[u].length > 0){
var grGroupUser = new GlideRecord('sys_user_grmember');
 
                var qGU1 = grGroupUser.addQuery('group', 'b85d44954a3623120004689b2d5dd60a');
                qGU1.addCondition('user', userArray[u]);
                grGroupUser.query();
                if(!grGroupUser.hasNext()) {
               
                    grGroupUser.user = userArray[u];
                    grGroupUser.group = 'b85d44954a3623120004689b2d5dd60a';
                    grGroupUser.insert();

  }
        }
        }

if i remove it this line then it is working but it is added one blank value .please let me know how i can stop to insert blank value.

var arruser=[];
var gr= new GlideAggregate('sn_vulc_result');
gr.addAggregate('COUNT');
gr.groupBy('cmdb_ci');
gr.query();
gs.info("get Count:"+gr.getRowCount());
while(gr.next()){
var grCi= new GlideRecord('cmdb_ci');
 grCi.addQuery('sys_id',gr.cmdb_ci);
 grCi.query();
while (grCi.next()){
//gs.info("CI Manager:"+grCi.u_cimanager.manager.getDisplayValue());
arruser.push(grCi.u_cimanager.manager);
  }
}
// new code will start here
    var arrayUtil = new global.ArrayUtil();
    userArray = arrayUtil.unique(arruser);
        gs.warn('userArray.length after unique = ' + userArray.length);
        var u;
        for (u = 0; u < userArray.length; u++) {
 //gs.info("print value1:"+userArray[u]);
var grGroupUser = new GlideRecord('sys_user_grmember');
 
                var qGU1 = grGroupUser.addQuery('group', 'b85d44954a3623120004689b2d5dd60a');
                qGU1.addCondition('user', userArray[u]);
                grGroupUser.query();
                if(!grGroupUser.hasNext()) {
               
                    grGroupUser.user = userArray[u];
                    grGroupUser.group = 'b85d44954a3623120004689b2d5dd60a';
                    grGroupUser.insert();

  }
        }
   out put of this script but one record is showing as empty which i dot want to insert. how i can stop ?
anilkumarsharma_0-1665566189072.png

 

0 REPLIES 0