レコード所有者の変更に関するメールアラートを古いレコード所有者にフィールド情報とともに送信するための頂点コードの書き方 助けてください
質問する
22872 次
2 に答える
5
送信メールの送信の詳細については、 http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_email_outbound.htmを参照してください。
所有者が変更されたときに前の所有者に電子メールを送信するサンプル コードを次に示します。
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 });
}
}
もちろん、現在は 1 つのレコードに対してのみ機能し、一括更新のために一括化する必要があります。
于 2012-12-05T04:07:41.643 に答える
0
すべてのオブジェクトに対して一般的なアラートを設定することはできません。代わりに、と
を比較する関心のあるオブジェクトの after update トリガーを記述します。Trigger.old[n].OwnerId
Trigger.new[n].OwnerId
すべてのトリガーが呼び出すクラス メソッドに比較コードを配置することをお勧めします。この目的でタイプとともにDynamic Apexを使用できます。sObject
新しいクラス メソッドでは、Messaging.SingleEmailMessageクラスを使用してアラートを送信します。
于 2012-12-05T03:12:10.460 に答える