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.

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