Monday, July 16, 2012

Sending Email To Public Group:

Sending Email To Public Group:
This example shows how to send an email to public group when a record is created on opportunity unit is a child of standard opportunity.In this example consider public groups having naming conventions like Operations-India,Operations-Hyderabad,Operations-Google....The Trigger looks likes this
trigger Opportunity_Unit_trg on Opportunity_Unit__c (after insert) {
list <string> ActId=new list <string> ();
list <string> OppID = new list <string>();
list <Opportunity> oppLst= new list <Opportunity> ();
list <Opportunity_Unit__c> oppActLst = new list <Opportunity_Unit__c>();
string ActName;
for (Opportunity_Unit__c oppUnitRec:Trigger.new) {
  //ActID.add(oppUnitRec.Unit__c);
  

Opportunity Opprec=[Select name from Opportunity where id=:oppUnitRec.Opportunity__c];


  list <Account> actLst= new list <Account>();
  actLst=[Select ID,name,Region__c,Sales_Level__c from Account where id =:oppUnitRec.Unit__c];
    
  list <string> strGrpName= new list <string>();
  for (Account actRec:actLst){
    strGrpName.add('Operations - '+actRec.Name);
    
  
  list <group> grplst=new list <group>();

    grplst=[Select ID from group where name in :strGrpName ];
    
    if (grplst.size()>0){
      list <string> strgrmMbr=new list <string>();

    list <GroupMember> grmMbrLst = new list <GroupMember>();
    grmMbrLst = [Select UserOrGroupId from GroupMember where GroupId in:grplst];
    
    list <string> usrIdLst= new list <string>();
    for (GroupMember grprec:grmMbrLst){
      usrIdLst.add(grprec.UserOrGroupId);
    }
    list <User> usrLst=new list <user>();
    
    usrLst=[Select Email from User where id in :usrIdLst];
    list <string> EmailId=new list <string>();
    for (User usrrec:usrLst){
      EmailId.add(usrrec.Email);
    }
    
    string strMailBdy='The following Opportunity Unit has been created: \n\n\n\n';
    
    strMailBdy +='Account:'+actRec.Name+'\n';
    strMailBdy +='Sales Level: '+actRec.Sales_Level__c+'\n';
    strMailBdy +='Region: '+actRec.Region__c+'\n';
    strMailBdy +='Opportunity: '+Opprec.name+'\n';
    strMailBdy +='Opportunity Unit: '+oppUnitRec.name+'\n';
    strMailBdy +='Unit Amount: '+oppUnitRec.Amount__c+'\n';
    
    
    Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
    mail.setToAddresses(EmailId);
     mail.setReplyTo('support@ChromeAlloy.com');
         mail.setSenderDisplayName('Salesforce Support');
        mail.setSubject('Opportunity Unit Created.');
        mail.setPlainTextBody(strMailBdy );
        Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });
    
    
    }
  
}
}

}

No comments:

Post a Comment