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
kallam salesforce1kallam salesforce1 

Getting error Invalid bind expression type of List<Id> for column of type Id

list<GroupMember> grpNameList = [SELECT UserOrGroupId, Group.DeveloperName FROM GroupMember WHERE Group.DeveloperName = 'Sales_Reports_Group'  AND Group.Type = 'Regular'];

Map<String,list<Id>> UserIdsWithGroupNames = new Map<String,List<Id>>();
 
for(GroupMember grp :grpNameList){
    if(!UserIdsWithGroupNames.containsKey(grp.Group.DeveloperName)){
         UserIdsWithGroupNames.put(grp.Group.DeveloperName, new List<Id>());
        
    }
    else{
        UserIdsWithGroupNames.get(grp.Group.DeveloperName).add(grp.UserOrGroupId);
    }
}
Map<Id, String> userEmailsById = new Map<Id, String>();
        // Get Emails from active users from group
        for(User u :[SELECT Id, Email FROM User WHERE Id IN :UserIdsWithGroupNames.values() AND IsActive = true]) {
            userEmailsById.put(u.Id, u.Email);
        }    

Help me how to resolve this issuse?
AnkaiahAnkaiah (Salesforce Developers) 
Hi Kallam,

Which line youi were getting an error?

Thanks!!
kallam salesforce1kallam salesforce1

I am getting error in this query

SELECT Id, Email FROM User WHERE Id IN :UserIdsWithGroupNames.values() AND IsActive = true

AnkaiahAnkaiah (Salesforce Developers) 
Change the below code and try.
 
for(GroupMember grp :grpNameList){
    if(!UserIdsWithGroupNames.containsKey(grp.Group.DeveloperName)){
         UserIdsWithGroupNames.put(grp.Group.DeveloperName, new List<Id>{grp.UserOrGroupId});
        
    }

If this helps, Please mark it as best answer.

Thanks!!






 
kallam salesforce1kallam salesforce1

Still getting same error

 

AnkaiahAnkaiah (Salesforce Developers) 

What is the error you were getting now?

Are you quering public group or queue in the below query.??

list<GroupMember> grpNameList = [SELECT UserOrGroupId, Group.DeveloperName FROM GroupMember WHERE Group.DeveloperName = 'Sales_Reports_Group'  AND Group.Type = 'Regular'];


Thanks!!