Wednesday, August 1, 2012

MERGE ACCOUNTS ACTION NEEDED:

MERGE ACCOUNTS ACTION NEEDED:
A very Interesting thing is that salesforce provides email notification depends on the action for the records.
In this article you can send an email to account owners after the merge .so that the lost users can receive an email Merge has been done on this account.
public Class SingleEmailMessage
{

public static void SentEmailtoUsers(String email)
{
        Messaging.Singleemailmessage mail =new Messaging.Singleemailmessage();
        mail.setToAddresses(new String[] {email});
        mail.setSubject('Accounts have been Merged');
        mail.setPlainTextBody('This is to notify that Accounts has been merged');
        // It's Compulsory to set activity false
        mail.setSaveAsActivity(false);
        Messaging.sendEmail(new Messaging.Singleemailmessage[] {mail}); 



}


}

trigger mergeAccounts on Account (before delete,after delete) {              Set<ID> loserAccounts= new Set<ID>();         List<User> loserusers = new list<User>();        If(Trigger.isbefore)    {       System.debug('before Trigger'+ Trigger.old);              for( Account a : Trigger.old)       {             loserAccounts.add(a.ownerid);                    }       loserusers=[select id,name,email,AccountId from User where Id in :loserAccounts];       System.debug('*****'+loserusers);       If(!loserusers.isEmpty())       {       for(User u : loserusers)       {             SingleEmailMessage.SentEmailtoUsers(u.email);       }       }        }       If(Trigger.isafter)    {          System.debug('&&&&&&&&'+ Trigger.old);       Account WinnerAccount=Trigger.old[0];              User winneruser=[Select id,name,email,AccountId from User where Id=:WinnerAccount.ownerid];       SingleEmailMessage.SentEmailtoUsers(winneruser.email);       } }




No comments:

Post a Comment