私は apex を初めて使用し、毎日実行される apex スケジュール クラスを作成しました。アカウントのコミッションのアカウント審査日が 2 週間 (14 日) 先の場合、スケジューラーは営業部門にメールを送信します。メールにはフローへのリンクが含まれています。フローは、新しいコミッションを計算するプロセスを開始します。そのためには、メールの送信をトリガーしたアカウント (アカウントのレビュー日が 2 週間以内のアカウント) から情報を取得するようにフローを理解する必要があります。
現在、電子メールはフローへのリンクとともに正常に送信されます。フローへのリンクは機能しますが、フローに到達すると、フローはどのアカウントから情報を取得する必要があるかを認識/理解していません。スケジューラのコードやフローのコードを変更する必要があるかどうかわかりません。
フローが情報にアクセスする方法は次のとおりです。
最初の画面の前に、フロー内のレコード ルックアップが発生します。アカウント ID と変数 vaAccountID から情報を引き出します。変数 {!vaAccountID} には、手数料にリンクされている AccountID が入力されていると思います。
スケジューラーを実行すると、アカウント ID に基づいてアカウントのレビュー日を持つアカウントがあるかどうかを判断します。フロー リンクを含む電子メール テンプレートを営業部門に送信します。
スケジューラは電子メールを送信し、「満足」しています。メソッドを実行するために必要な基準は完全です (アカウントのレビュー日が今から 14 日後に設定されたアカウントがあり、そのアカウントがメールを送信します)。
global class AccountReviewSchedulerEmailAcc implements Schedulable {
global void execute (SchedulableContext ctx)
{
sendEmail();
}
public void sendEmail()
{
for(Account acc : [SELECT Id FROM Account WHERE Next_Account_Review_Date__c = : system.Today().addDays(14)])
{
Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setTemplateId('00XF0000000LfE0');
mail.setTargetObjectId('005J0000000JWYx');
mail.setSaveAsActivity(false);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] {mail });
}
}
}
しかし、その流れは「幸せ」ではありません。どのアカウントから情報を取得するかはわかりません。
フローの最初の画面では、経常収益とアカウント ページへのリンクが表示されるはずです。経常収益フィールドは空白です。アカウントページへのリンクが機能しません。
フローの最初の画面から先に進もうとすると、Salesforce から一般的なエラー画面が表示され、Salesforce から詳細なエラー メッセージが表示されます。それは言います:
Encountered unhandled fault when running process Organic_Commission_Determination_Flow/301J000000001Tx exception by user/organization: 00DJ00000000YTl/{4} Source organization: 00DA0000000KZI8 (null)
interaction.dal.exception.DALExecutionFault: ; nested exception is:
common.exception.ApiQueryException:
Account.Annual_RR__c FROM Account WHERE (Account.Id = '{!Commission__c.AccountId__c}')
^ ERROR at Row:1:Column:89 invalid ID field: {!Commission__c.AccountId__c} (There was a problem executing your command.) > RETRIEVE
caused by element : Data lookup.Lookup_Account
caused by: interaction.dal.exception.DALExecutionFault: ; nested exception is:
common.exception.ApiQueryException:
Account.Annual_RR__c FROM Account WHERE (Account.Id = '{!Commission__c.AccountId__c}')
^ ERROR at Row:1:Column:89 invalid ID field: {!Commission__c.AccountId__c} (There was a problem executing your command.) > RETRIEVE
Salesforce Error ID: 580775287-15539 (1733087783)
このエラー メッセージはどういう意味ですか? Salesforce のエラーに関する詳細情報を取得するにはどうすればよいですか? また、この問題のトラブルシューティングを行うにはどうすればよいですか? このプロセスが非常に複雑であることは理解していますが、1 つの基本的な質問に関連しています。Apex スケジューラでレビュー日が 14 日先のアカウントから情報を取得する必要があることをフローに認識させるにはどうすればよいでしょうか?