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