0

私は apex を初めて使用し、毎日実行される apex スケジュール クラスを構築しようとしています。コミッションのアカウント審査日が 2 週間 (14 日) 先の場合、スケジューラーは当社の営業部門に電子メールを送信します。

スケジュール可能なインターフェイスを実装するクラスを作成しました。現在、コードが機能することを確認するためにテストしています。テスト メソッドを作成しましたが、うまくいくかどうかわかりません。次のエラー メールが届きました。

サンドボックス

原因: System.EmailException: SendEmail が失敗しました。行 0 の最初の例外。最初のエラー: INVALID_SAVE_AS_ACTIVITY_FLAG。ユーザーにメールを送信するときは、saveAsActivity を false にする必要があります。: []

Class.AccountReviewSchedulerOtherObjectIDETest.sen dEmail: 行 15、列 1

Class.AccountReviewSchedulerOtherObjectIDETest.execute: 行 5、列 1

テスト メソッドがないと、スケジューラから応答がありません (エラー メールや送信しようとしているメールではありません。

これが私のApexスケジュールクラスです(テストメソッド付き)

global class AccountReviewSchedulerOtherObjectIDETest implements Schedulable{ 
global void execute (SchedulableContext ctx) 
{ 

sendEmail(); 

}
public void sendEmail()
{


Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage(); 
mail.setTemplateId('00XF0000000LfE0'); 
mail.setTargetObjectId('005J0000000JWYx'); 
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail }); 
}

public static testMethod void testschedule() {

Test.StartTest();
AccountReviewSchedulerOtherObjectID sh1 = new AccountReviewSchedulerOtherObjectID();

Test.stopTest();

}
}

このエラーはどういう意味ですか? 私のテストクラスは間違った方法で書かれていますか? 私のメール方法に問題がありますか?

4

1 に答える 1

2

mail.setSaveAsActivity(false);Messaging.sendEmail() への呼び出しの前に追加します。

于 2012-07-20T19:48:11.217 に答える