2012-12-04 7 views
1

레코드 소유자에 대한 이메일 알림을 보내는 방법 apex 코드를 사용하여 필드 정보가있는 이전 레코드 소유자로 변경 하시겠습니까? 도움말 Pls에이펙스 코드 이메일 알림

답변

5

아웃 바운드 이메일 전송에 대한 자세한 내용은 http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_email_outbound.htm을 참조하십시오.

여기 소유자가 변경 될 때 이전 소유자에게 이메일을 보내는 예제 코드 : 그것은 현재 하나의 레코드 만 작동 및 대량 업데이트를 bulkified해야 물론

trigger SendEmailOnOwnerChange on Account (after update) { 
    if (trigger.old[0].OwnerId != trigger.new[0].OwnerId) { 
     Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); 

     String emailAddr = [select Email from User where Id = :trigger.old[0].OwnerId].Email; 
     String newOwnerName = [select Name from User where Id = :trigger.new[0].OwnerId].Name; 

     String[] toAddresses = new String[] {emailAddr}; 
     mail.setToAddresses(toAddresses); 

     mail.setSubject('Owner Changed for Account : ' + trigger.new[0].Name); 

     mail.setPlainTextBody('Owner of Account: ' + trigger.new[0].Name + ' Changed to ' + newOwnerName); 
     mail.setHtmlBody('Owner of Account: <b>' + trigger.new[0].Name + '</b> Changed to <b>' + newOwnerName + '</b>'); 

     Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail }); 
    } 
} 

.

+0

감사합니다. 그것은 효과가 있었다. ... –

0

모든 개체에 대해 일반 경고를 사용할 수는 없습니다.
Trigger.old[n].OwnerIdTrigger.new[n].OwnerId과 비교할 관심이있는 개체에 대한 업데이트 후 업데이트를 작성하십시오.

모든 트리거가 호출하는 클래스 메소드에 비교 코드를 넣는 것이 좋습니다. 이 목적으로 sObject 유형으로 Dynamic Apex을 사용할 수 있습니다.

새 클래스 메서드에서 Messaging.SingleEmailMessage 클래스를 사용하여 경고를 보냅니다.