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
RbnRbn 

Help on trigger After Update

Hi.

 

i have a trigger , when a team member is created ,automaically the team member goes and sits in group Member Object.

 

I am facing problem on after Update

 

Below is my code.

trigger createGroupMember on Team_member__c (after insert,after update) {
    set<Id> aIteamIds = new set<Id>();
    for(Team_member__c  tm : trigger.new){
        aIteamIds.add(tm.IATeam__c);
    }
    Map<String,Id> aIteamName = new Map<String,Id>();
    for(IA_Team__c ai : [select name,Public_Group_Name__c from IA_Team__c where Id IN: aIteamIds]){
        aIteamName.put(ai.Public_Group_Name__c,ai.Id);
    }
    Map<Id,Id> aIteamGroupId = new Map<Id,Id>();
    
    for(Group gp : [select Id,developerName from Group where developerName IN: aIteamName.keyset()]){
        if(aIteamName.containsKey(gp.developerName)){
            
            aIteamGroupId.put(aIteamName.get(gp.developerName),gp.Id);
        }        
    }
    List<GroupMember> newGroupMember = new List<GroupMember>();
    GroupMember gm;
    for(Team_member__c  tm : trigger.new){
       gm = new GroupMember();
       gm.GroupId = aIteamGroupId.get(tm.IATeam__c);
       gm.UserOrGroupId = tm.Team_member_Name__c;
       newGroupMember.add(gm);
    }
    if(newGroupMember.size()>0){
        insert newGroupMember;
    }

if(trigger.isupdate)
    {
        set<string> memname = new set<string>();
        Map<string,string> grpmem = New Map<string,string>();
        for(Team_member__c tm:Trigger.Old)
       {
            memname.add(tm.Team_member_Name__c);
            grpmem.put(tm.Team_member_Name__c,tm.Team_member_Name__c);
        }
    list<GroupMember> resultlist=new list<GroupMember>([select GroupId,UserOrGroupId from GroupMember where GroupId in:memname]);
        list<GroupMember> uplist=new list<GroupMember>();
        for (Integer i = 0; i < Trigger.new.size(); i++)
        {
            if(grpmem.containsKey(Trigger.old[i].Team_member_Name__c))
            {
               grpmem.put(Trigger.old[i].Team_member_Name__c,Trigger.New[i].Team_member_Name__c);
            }
        }
for (Integer i = 0; i < resultlist.size(); i++)
        {
            if(grpmem.containsKey(resultlist[i].UserOrGroupId))
            {
                resultlist[i].UserOrGroupId=grpmem.get(resultlist[i].Team_member_Name__c);
               //resultlist[i].UserOrGroupId=grpmem.get(resultlist[i].Team_member_Name__c);
                uplist.add(resultlist[i]);
            }
        }
        update uplist;
    }
}

 

Thanks in advance

Salim MohamedSalim Mohamed
Hi,
What is error message you get?