function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
Nitesh SingiNitesh Singi 

How to fetch public group name with no group members in it?

1. How to fetch public group name with no group members in it?
List<group> groupRecList = [SELECT Id, Name, DeveloperName FROM Group];
Set<Id> SetOfUsers = new Set<Id>();
for (GroupMember GrpMem : [Select GroupId, UserOrGroupId From GroupMember Where GroupId IN :groupRecList]){
    if (GrpMem.UserOrGroupId.getSObjectType() == User.SObjectType){
        
            SetOfUsers.add(GrpMem.UserOrGroupId);
        system.debug('GroupId'+GrpMem.GroupId);
            system.debug('SetOfUsers==>'+SetOfUsers.size());
    }
}
 
Best Answer chosen by Nitesh Singi
Danish HodaDanish Hoda
Hi Nitesh,
You can refer below code:
List<Group> groupList = [SELECT Id, Label, Name, Type, (SELECT Id, UserOrGroupId, GroupId FROM GroupMembers) FROM Group];
system.debug('-->> '+groupList);
List<String> groupNames = new List<String>();
for(integer i=0; i<groupList.size(); i++){
    if(groupList[i].GroupMembers.isEmpty()){
        groupNames.add(groupList[i].Id);
    }
}
system.debug('--> '+groupNames);

 

All Answers

Danish HodaDanish Hoda
Hi Nitesh,
You can refer below code:
List<Group> groupList = [SELECT Id, Label, Name, Type, (SELECT Id, UserOrGroupId, GroupId FROM GroupMembers) FROM Group];
system.debug('-->> '+groupList);
List<String> groupNames = new List<String>();
for(integer i=0; i<groupList.size(); i++){
    if(groupList[i].GroupMembers.isEmpty()){
        groupNames.add(groupList[i].Id);
    }
}
system.debug('--> '+groupNames);

 
This was selected as the best answer
Deepali KulshresthaDeepali Kulshrestha
Hi Nitesh,

I've gone through your requirement and you can use the below code to fetch group with no group members:
Apex Code--->

List<group> groupRecList = [SELECT Id, Name, DeveloperName FROM Group];
Map<id,List<GroupMember>> GroupVSMemberList=new Map<id,List<GroupMember>>();
List<GroupMember> GrpMemList=new List<GroupMember>([Select GroupId, UserOrGroupId From GroupMember ]);

for(Group group:groupRecList)
{
  GroupVSMemberList.put(group.Id,new List<GroupMember>());
  
}

for(GroupMember member:GrpMemList)
{
if(GroupVSMemberList.containsKey(member.GroupId))
{
   GroupVSMemberList.get(member.GroupId).add(member);
}
  
}

for(Id groupId:GroupVSMemberList.keySet())
{
  if(GroupVSMemberList.get(groupId).size()==0 || GroupVSMemberList.get(groupId)==null)
  {
    System.debug('Group>>>'+GroupVSMemberList.get(groupId));
  }
}


I hope you find the above solution helpful. If it does, please mark as Best Answer to help others too.

Thanks and Regards,
Deepali Kulshrestha
www.kdeepali.com