In my org we have few queues with name like salesA, salesB…
And i was trying to get all members (ids) of these salesqueue
List<Group> Salesqueues = [SELECT Id, name FROM Group WHERE type='Queue' and Name like '%Sales%'];Map<Id,GroupMember> Salesmembers = new Map<Id,GroupMember>();
for(GroupMember sgm : [SELECT Group.Name, UserOrGroupId FROM GroupMember WHERE GroupId IN:Salesqueues.Id ])
{
Salesmembers.put(sgm.UserOrGroupId,sgm);
}
but i got error in for loop line : Error: Initial term of field expression must be a concrete SObject: List<Group>
So i think i need to loop through Salesqueues.Id one by and inside that for loop get its members using SOQL. But this is wrong approach and i might hit the SOQL Limit, so what would be the best approach to get all queuemebers id's where queue name contains 'Sales'
Thanks a lot for suggestions:)
Best Answer
Your problem is here:
IN:Salesqueues.Id
. Salesqueues is a collection of Group sObjects and you need a collection of Id's insted. Try the following: