You need to sign in to do that
Don't have an account?
Trigger Timing problem
I am having a problem with the timing of this trigger. Here is the scenario that cuases it not to work right.
When you add a Lead or Contact as a Campain Memebr and you set the Response_Tracking_date__c from Null to a date the trigger does not fire off. It will fire if you edit the same recored and save it again no problem or if you just leave Response_Tracking_date__c blank and let the system fill it out.
I think it has something to do with it being "before Insert" I am guessing the new info in Response_Tracking_date__c is not there to look at when the trigger fires off. I tired adding "after Insert" but get errror " execution of AfterInsert caused by: System.FinalException: Record is read-only: Trigger.CampaignMemberTrigger: line 15, column 1"
When you add a Lead or Contact as a Campain Memebr and you set the Response_Tracking_date__c from Null to a date the trigger does not fire off. It will fire if you edit the same recored and save it again no problem or if you just leave Response_Tracking_date__c blank and let the system fill it out.
I think it has something to do with it being "before Insert" I am guessing the new info in Response_Tracking_date__c is not there to look at when the trigger fires off. I tired adding "after Insert" but get errror " execution of AfterInsert caused by: System.FinalException: Record is read-only: Trigger.CampaignMemberTrigger: line 15, column 1"
trigger CampaignMemberTrigger on CampaignMember (before insert, before update, after insert) { // Get a list of fields from the sObject Marketing_KPI_Target__c and name the list kpiTargetList List<Marketing_KPI_Target__c> kpiTargetList = [SELECT Type_of_Sale__c, ECI_Product__c, CurrencyIsoCode,KPI_Target_Date__c FROM Marketing_KPI_Target__c]; for (CampaignMember member : Trigger.New) { for (Marketing_KPI_Target__c kpiTarget : kpiTargetList) { if (kpiTarget.Type_of_Sale__c == member.Type_of_Sale__c && kpiTarget.ECI_Product__c == member.ECI_Product__c && kpiTarget.CurrencyIsoCode == member.Currency__c && member.Response_Tracking_date__c != Null && kpiTarget.KPI_Target_Date__c.month() == member.Response_Tracking_Date__c.month() && kpiTarget.KPI_Target_Date__c.year() == member.Response_Tracking_Date__c.year() && member.HasResponded == True) { member.Marketing_KPI_Target__c = kpiTarget.Id; continue; } } } }
trigger CampaignMemberTrigger on CampaignMember (before insert, before update) { // Get a list of fields from the sObject Marketing_KPI_Target__c and name the list kpiTargetList List<Marketing_KPI_Target__c> kpiTargetList = [SELECT Type_of_Sale__c, ECI_Product__c, CurrencyIsoCode,KPI_Target_Date__c FROM Marketing_KPI_Target__c]; for (CampaignMember member : Trigger.New) { for (Marketing_KPI_Target__c kpiTarget : kpiTargetList) { if (kpiTarget.Type_of_Sale__c == member.Type_of_Sale__c && kpiTarget.ECI_Product__c == member.ECI_Product__c && kpiTarget.CurrencyIsoCode == member.Currency__c && member.Response_Tracking_date__c != Null && kpiTarget.KPI_Target_Date__c.month() == member.Response_Tracking_Date__c.month() && kpiTarget.KPI_Target_Date__c.year() == member.Response_Tracking_Date__c.year() && member.HasResponded == True) { member.Marketing_KPI_Target__c = kpiTarget.Id; continue; } } } }
Read only error is coming because of After event in CampaignMemberTrigger trigger.
Try to remove After insert event and check
Thanks
All Answers
Read only error is coming because of After event in CampaignMemberTrigger trigger.
Try to remove After insert event and check
Thanks
When you add a Lead or Contact as a Campain Memebr and you set the Response_Tracking_date__c from Null to a date the trigger does not fire off. It will fire if you edit the same recored and save it again no problem