You need to sign in to do that
Don't have an account?
Fiona Burniston
Error Apex Trigger for Last Completed Event Date
Hi team,
I'm trying to capture the last completed event date on the contact object but I'm struggling with the trigger.
Here is the Apex Class - no errors
public class LastCompletedEventDate{
//Grab list of contacts
protected final Contact[] contactNewList = new Contact[] {};
protected final Contact[] contactOldList = new Contact[] {};
public LastCompletedEventDate(Contact[] contactOldList, Contact[] contactNewList) {
this.contactNewList.addAll(contactNewList == null ? new Contact[] {} : contactNewList);
this.contactOldList.addAll(contactOldList == null ? new Contact[] {} : contactOldList);
}
public void execute() {
//find all events associated to contacts
Event[] eventList = [select ActivityDate, WhoId, EndDateTime, Subject, ActivityDateTime from Event where WhoId in :contactNewList];
Map<Id, Contact> contactMap = new Map<Id, Contact>(contactNewList);
for(Contact contact : contactNewList) {
contact.Last_Completed_Event__c = null;
}
//create if else statement to display most current completed event date
for(Event event : eventList) {
Contact contact = contactMap.get(event.WhoId);
if(Event.EndDateTime < Date.Today())
Contact.Last_Completed_Event__c = Event.EndDateTime;
}
}
}
Here is the trigger with the error
trigger LastCompletedEventDate on Contact (before update) {
if(EventID= true) {
Set<ID> sID = new Set<ID>(trigger.newMap.keySet());
new LastCompletedEventDate(trigger.old, trigger.new).execute();
}
}
Any ideas on what I'm doing wrong?
I'm trying to capture the last completed event date on the contact object but I'm struggling with the trigger.
Here is the Apex Class - no errors
public class LastCompletedEventDate{
//Grab list of contacts
protected final Contact[] contactNewList = new Contact[] {};
protected final Contact[] contactOldList = new Contact[] {};
public LastCompletedEventDate(Contact[] contactOldList, Contact[] contactNewList) {
this.contactNewList.addAll(contactNewList == null ? new Contact[] {} : contactNewList);
this.contactOldList.addAll(contactOldList == null ? new Contact[] {} : contactOldList);
}
public void execute() {
//find all events associated to contacts
Event[] eventList = [select ActivityDate, WhoId, EndDateTime, Subject, ActivityDateTime from Event where WhoId in :contactNewList];
Map<Id, Contact> contactMap = new Map<Id, Contact>(contactNewList);
for(Contact contact : contactNewList) {
contact.Last_Completed_Event__c = null;
}
//create if else statement to display most current completed event date
for(Event event : eventList) {
Contact contact = contactMap.get(event.WhoId);
if(Event.EndDateTime < Date.Today())
Contact.Last_Completed_Event__c = Event.EndDateTime;
}
}
}
Here is the trigger with the error
trigger LastCompletedEventDate on Contact (before update) {
if(EventID= true) {
Set<ID> sID = new Set<ID>(trigger.newMap.keySet());
new LastCompletedEventDate(trigger.old, trigger.new).execute();
}
}
Any ideas on what I'm doing wrong?
what is EventID in your trigger?
and why are you capturing sId Set, you are not using it any where.
Regards,
Mahesh
I thought I could use an IF statement for the trigger so if there is an event id assigned to the contact, this suggests and event is assigned to the contact.
Perhaps I need to start again on the trigger?
Thanks,
Fiona
I'm struggling to write this trigger can you help?
thansk,
Fiona
Try this.
Regards,
Mahesh