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!