How to Find Group without group member.

Amit Singh1
Tera Contributor

Hi,

How to Find Group without group member.

Please give me Solution

1 ACCEPTED SOLUTION

Rahul Kumar17
Tera Guru

hi

u check for backgroud Script

findEmptyGroups();
function findEmptyGroups() {
var myGroups = [];
var grGroup = new GlideRecord("sys_user_group");
grGroup.addActiveQuery();
grGroup.query();
while (grGroup.next()) {
var gaGroupMember = new GlideAggregate("sys_user_grmember");
gaGroupMember.addQuery("group",grGroup.sys_id.toString());
gaGroupMember.addAggregate('COUNT');
gaGroupMember.query();
var gm = 0;
if (gaGroupMember.next()) {
gm = gaGroupMember.getAggregate('COUNT');
if (gm == 0) {
myGroups.push(grGroup.name.toString());
}
}
}
gs.print(myGroups);
}
If my response helped please mark it correct and close the thread.

Thanks,
Rahul Kumar

View solution in original post

2 REPLIES 2

Abhishek Pidwa
Kilo Guru

Hello Amit Again, 

 

So in order to find the groups without any group member, I would suggest looping through two tables: 

 

sys_group  (stores group members)

sys_user_grmember (stores group to group members relationship)

 

So you write your query like this :

 

var group = new GlideRecord('sys_group');

group.query();

while (group.next()){

  var grMember = new GlideRecord('sys_user_grmember';

   grMember.addQuery('group', group.sys_id);

   grMember.query();

   if (!grMember.next()){

      gs.AddInfoMessage("The group "+ group.label + " does not have any members inside them");

  }

 

)

}

 

 

You should be good to go man. Try this and let me know how it goes. 

 

Please mark this answer as correct/helpful if this solves your problem

Rahul Kumar17
Tera Guru

hi

u check for backgroud Script

findEmptyGroups();
function findEmptyGroups() {
var myGroups = [];
var grGroup = new GlideRecord("sys_user_group");
grGroup.addActiveQuery();
grGroup.query();
while (grGroup.next()) {
var gaGroupMember = new GlideAggregate("sys_user_grmember");
gaGroupMember.addQuery("group",grGroup.sys_id.toString());
gaGroupMember.addAggregate('COUNT');
gaGroupMember.query();
var gm = 0;
if (gaGroupMember.next()) {
gm = gaGroupMember.getAggregate('COUNT');
if (gm == 0) {
myGroups.push(grGroup.name.toString());
}
}
}
gs.print(myGroups);
}
If my response helped please mark it correct and close the thread.

Thanks,
Rahul Kumar