私は apex を初めて使用し、毎日実行される apex スケジュール クラスを構築しようとしています。コミッションのアカウント審査日が 2 週間 (14 日) 先の場合、スケジューラーは当社の営業部門に電子メールを送信します。
プログラムはほぼ完了しましたが、次のエラーが発生し続けます。
エラー: コンパイル エラー: 比較引数は互換性のある型である必要があります: Schema.SObjectField、行 9 列 9 の日付
これが私のコードです:
global class AccountReviewScheduler implements Schedulable
{
global void execute (SchedulableContext ctx)
{
sendEmail();
}
public void sendEmail()
{
if (Account__r.Next_Account_Review_Date__c == System.today().addDays(14))
{
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
Mail.setTemplateId('00XF0000000LfE1');
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail });
}
}
}
私はいくつかの調査を行い、別のディスカッション ボードのコメント投稿者は、Account__r.Next_Account_Review_Date__c は単なるフィールドであるため、機能していないと言いました。
値を持たせるには、レコードで使用する必要があります。次に、その値を system.today() と比較できます。
私はそれが何を意味するのか分かりません....カスタムオブジェクトを作成しますか? これを行う方法がわかりません。これが私が問題を抱えている修正されたコードです。これが私の修正されたコードです:
これが改訂されたコードです(アスタリスク**は変更を示します)
global class AccountReviewScheduler implements Schedulable
{
global void execute (SchedulableContext ctx)
{
sendEmail();
}
public void sendEmail()
{
**CustomObj__c co = [select Account__r.Next_Account_Review_Date__c from CutomObj__c limit 1];**
**if(co.Account__r.Next_Account_Review_Date__c == system.today().addDays(14))**
{
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
Mail.setTemplateId('00XF0000000LfE1');
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail });
}
}
}
変更点は太字で示されています...カスタム obj コードが間違っている可能性があることはわかっています...他の人から取得したので、どうすればよいかわかりません。
注: 時間ベースのワークフローはここでは機能しません。このメールは毎年 (何年にもわたって) アカウントの審査日の 14 日前に送信される必要があるためです。時間ベースのワークフローは、1 年間トリガーするように設定された後、1 回だけ機能しますが、繰り返されません。設計上、再発しません。参照: http://success.salesforce.com/questionDetail?qId=a1X30000000JnPMEA0
スケジューリングに関するドキュメントを読みました: http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_scheduler.htm
Apex ワークブックのチュートリアル: http://blogs.developerforce.com/developer-relations/2010/02/spring-10-saw-the-general-availability-of-one-of-my-favorite-new- features-of-the-platform-the-apex-schedulerwith-the-apex-s.html および公式 Apex ガイドのチュートリアル 14 を参照しましたが、まだ問題が発生しています。
私のコードへのヘルプ/洞察/新しいリソースへのリンクは大歓迎です。