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
Girbson BijouGirbson Bijou 

Concatenate all Campaign Member First name to one field in the Campaign

I need to have the first name of the the campaign member in a field called Acteurs in Campaign separate by comma. 
Se the attached picture. 
User-added image

the main error i get in this peice of code is: 
Method does not exist or incorrect signature: void add(Campaign) from the type List<Id> at line 7 column 19
 
Trigger allActors on CampaignMember (after update, after insert, after delete, after undelete){
    List <CampaignMember> cm = (Trigger.isInsert|| Trigger.isUnDelete) ? Trigger.new : Trigger.old;
    
    List <Id> campId = new List<Id> ();
    
    for (CampaignMember AllMember : cm) {
           campId.add(AllMember.Campaign);
   }
   
   List< Campaign> campaignList = [ SELECT id, (SELECT FirstName from  CampaignMembers) From Campaign 
                                    Where id in:campId];
                                    
    for (Campaign camp: campaignList){
        if (camp.CampaignMember.size()>0){
            camp.Name = string.valueOf(camp.CampaignMember[0].Acteurs__c);
            for(integer i =1; i < camp.CampaignMember.size(); i++)
                camp.Acteurs__c = camp.Acteurs__c+';'+string.valueOf(camp.CampaignMembers[i].Acteurs__c);
        }
            else
            camp.Acteurs__c = null;
        }
        
        
            update campaignList;

    }

 
Raj VakatiRaj Vakati
Try this
 
Trigger allActors on CampaignMember (after update, after insert, after delete, after undelete){
List <CampaignMember> cm = (Trigger.isInsert|| Trigger.isUnDelete) ? Trigger.new : Trigger.old;

List <Id> campId = new List<Id> ();

for (CampaignMember AllMember : cm) {
	   campId.add(AllMember.CampaignId);
}

List< Campaign> campaignList = [ SELECT id, (SELECT FirstName from  CampaignMembers) From Campaign 
								Where id in:campId];
								
for (Campaign camp: campaignList){
	if (camp.CampaignMember.size()>0){
		String val =  camp.Acteurs__c ; 
		for(integer i =1; i < camp.CampaignMember.size(); i++){
			val = val+';'+string.valueOf(camp.CampaignMembers[i].Acteurs__c);
		}
		camp.Acteurs__c = val;
	}
		else{
		camp.Acteurs__c = null;
	}


}
	
	
		update campaignList;
}

 
Girbson BijouGirbson Bijou
Hi Guys, thank you for support. It works fine but i want to improve it. Below are the things i want fix.
- All the campaignMember Name, are not displays in the campaign Custom field(Acteurs__c)
- when i update the campaign members, it re-copy the name to the campaign Custom field(Acteurs__c) which cause duplicate name. 
Below are my Code:
Trigger allActors on CampaignMember (after update, after insert, after delete, after undelete){
    List <CampaignMember> cm = (Trigger.isInsert|| Trigger.isUnDelete) ? Trigger.new : Trigger.old;
    
    List <Id> campId = new List<Id> ();
    
    for (CampaignMember AllMember : cm) {
           campId.add(AllMember.CampaignId);
   }
   
   List< Campaign> campaignList = [ SELECT id, Acteurs__c, (SELECT Name  from  CampaignMembers) From Campaign 
                                    Where id in:campId];
                                    
    for (Campaign camp: campaignList){
        if (camp.CampaignMembers.size()>0){
            //camp.Name = string.valueOf(camp.CampaignMembers[0].Name);
            for(integer i =1; i < camp.CampaignMembers.size(); i++)
                camp.Acteurs__c = camp.Acteurs__c+';'+string.valueOf(camp.CampaignMembers[i].Name);
        }
            else
            camp.Acteurs__c = null;
        }   
                    update campaignList;

    }
	
	
	//Test Class
	
	@isTest Private class AllActorsTest{
   
    @isTest static void InsetCm(){
    Campaign c = new Campaign ();
    c.Name = 'My Campaign';
    Insert c;
        
    CampaignMember cm = new CampaignMember();
    contact cont = new Contact (firstName='Bijou', lastName ='Girbson');
    Upsert cont;  
    cm.CampaignId = c.Id;
    cm.ContactId = cont.Id;


    insert cm;
        
 
    Delete cm;

   }
}