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.

Want to calculate number of users added to the group

Ash41
Kilo Sage

Hi Team, 

 

I have new field "Users count" Integer type on group table, I want to calculate number of users added/removed to the grmember table. I have create BR on grmember table with After insert/delete. getting wrong count, please suggest

(function executeRule(current, previous /*null when async*/) {
var qry3 = new GlideRecord('sys_user_group');
   qry3.addQuery('sys_id', current.group);
   qry3.query();
   while(qry3.next()){
   var grpm = new GlideAggregate('sys_user_grmember');
   grpm.addQuery('group', qry3.sys_id);
   grpm.addAggregate('COUNT');
   grpm.query();
   var groupMembers = 0;
   if(grpm.next()){
   groupMembers = grpm.getAggregate('COUNT');
   gs.addInfoMessage(groupMembers);
   }
   qry3. user_count= groupMembers;
   qry3.update();
   }
})(current, previous);

 

1 ACCEPTED SOLUTION

Vasu ch
Kilo Sage

Hi @Ash41 

Try below code

(function executeRule(current, previous /*null when async*/) {
var qry3 = new GlideRecord('sys_user_group');
   qry3.addQuery('sys_id', current.sys_id);  //Updated this line
   qry3.query();
   while(qry3.next()){
   var grpm = new GlideAggregate('sys_user_grmember');
   grpm.addQuery('group', qry3.sys_id);
   grpm.addAggregate('COUNT');
   grpm.query();
   var groupMembers = 0;
   if(grpm.next()){
   groupMembers = grpm.getAggregate('COUNT');
   gs.addInfoMessage(groupMembers);
   }
   qry3. user_count= groupMembers;
   qry3.update();
   }
})(current, previous);

View solution in original post

2 REPLIES 2

Vasu ch
Kilo Sage

Hi @Ash41 

Try below code

(function executeRule(current, previous /*null when async*/) {
var qry3 = new GlideRecord('sys_user_group');
   qry3.addQuery('sys_id', current.sys_id);  //Updated this line
   qry3.query();
   while(qry3.next()){
   var grpm = new GlideAggregate('sys_user_grmember');
   grpm.addQuery('group', qry3.sys_id);
   grpm.addAggregate('COUNT');
   grpm.query();
   var groupMembers = 0;
   if(grpm.next()){
   groupMembers = grpm.getAggregate('COUNT');
   gs.addInfoMessage(groupMembers);
   }
   qry3. user_count= groupMembers;
   qry3.update();
   }
})(current, previous);

yaswanthi2
Giga Sage

Hi @Ash41 

(function executeRule(current, previous /*null when async*/) {
var qry3 = new GlideRecord('sys_user_group');
qry3.addQuery('sys_id', current.getValue('group')); //Updated this line
qry3.query();
while(qry3.next()){
var grpm = new GlideAggregate('sys_user_grmember');
grpm.addQuery('group', qry3.sys_id);
grpm.addAggregate('COUNT');
grpm.query();
var groupMembers = 0;
if(grpm.next()){
groupMembers = grpm.getAggregate('COUNT');
}
qry3.user_count= groupMembers;
qry3.update();
}
})(current, previous);

If that helps please mark my answer as correct / helpful!