• Simon Cremoni 4
  • NEWBIE
  • 10 Points
  • Member since 2017

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 1
    Questions
  • 4
    Replies
Hi,
I created a trigger before delete.
The objective is to block the deletion and update the record (event) to set the status to 'Cancelled'.
I don't have error but the update don't take effect.
Can you help me to find what's wrong ?
Here my trigger :
trigger EventBeforeDelete on Event (before delete) {
	system.debug('## EventBeforeDelete');	
	User curUser = [Select Id, BYPASSVALIDATIONRULE__c From USER Where Id = :UserInfo.getUserId()];
	
	List<Event>EventToCancels = new List<Event>();
	List<Event>EventToUpdate = new List<Event>();
	
	for(Event e :trigger.old)
	{
		if(e.Type__c == 'Call' /*&& UserInfo.getProfileId() != Label.AdminProfileId*/ && curUser.BYPASSVALIDATIONRULE__c == false)
		{
			EventToCancels.add(e);
			EventToUpdate.add(new Event(Id=e.Id,Status__c='Cancelled',ReasonForCancellation__c='Created By Mistake'));
			
		}
	}

	if(EventToUpdate.size()>0)
	{
		update EventToUpdate;
	}



	for(Event e :EventToCancels)
	{
		e.adderror('Call can\'t be removed, it was cancelled.');
	}
	
}
Thanks for your help !
 
Hi,
I created a trigger before delete.
The objective is to block the deletion and update the record (event) to set the status to 'Cancelled'.
I don't have error but the update don't take effect.
Can you help me to find what's wrong ?
Here my trigger :
trigger EventBeforeDelete on Event (before delete) {
	system.debug('## EventBeforeDelete');	
	User curUser = [Select Id, BYPASSVALIDATIONRULE__c From USER Where Id = :UserInfo.getUserId()];
	
	List<Event>EventToCancels = new List<Event>();
	List<Event>EventToUpdate = new List<Event>();
	
	for(Event e :trigger.old)
	{
		if(e.Type__c == 'Call' /*&& UserInfo.getProfileId() != Label.AdminProfileId*/ && curUser.BYPASSVALIDATIONRULE__c == false)
		{
			EventToCancels.add(e);
			EventToUpdate.add(new Event(Id=e.Id,Status__c='Cancelled',ReasonForCancellation__c='Created By Mistake'));
			
		}
	}

	if(EventToUpdate.size()>0)
	{
		update EventToUpdate;
	}



	for(Event e :EventToCancels)
	{
		e.adderror('Call can\'t be removed, it was cancelled.');
	}
	
}
Thanks for your help !