なんだ、結局は毎日走らせて、数式で走っていい日かを見るだけ?
Apexでやる時と何も変わらん。
スケジュールトリガフローのメール送信は、スケジュールトリガフローの処理が終わってから(データベース等のコミットが終わってから)送信が実行されます。
そのため、フローの開始の時刻から多少のズレが生じることがあります。
ループしなくても大丈夫
スケジュールトリガーフローの実行者を確認してみるとヒントがあるかもしれません。
コアアクションでメールを送信するとEmailMessageのレコードが作成されているので、このレコードの作成者がデフォルトのワークフローユーザならフローの可能性が高いですね。
もし、担当者が手動で送ったものなら、この担当者が作成者になっていると思います。
デバック
これは期待どおりに動作しています。スケジュールされたフローをデバッグすると、レコードが 1 つしか見つかりません。これは、開始要素に条件を設定することで、「レコードのバッチに対してフローを実行する」という要件を満たしているためです。Salesforce は、条件を満たすレコードごとに個別のフロー インタビューを実行し、バックエンドでバッチ処理を行います。フロー内で一括処理を自分で処理する必要はありません。このユース ケースでは、レコードの取得やループを使用してより複雑なフローを作成する必要はありませんが、これが理解しにくい理由はわかります。スケジュールされたフローは、基本的にフロー構築のルールの例外です。デバッグが機能するため、さらに「テスト」するには、複数の連絡先が今日誕生日になるように設定し、フローを約 5 分後に実行するようにスケジュールし、アクティブ化して、フローが「実際に」実行されるのを待ちます。
スケジュールされたフローは、他のフローとデバッグ方法が少し異なります。デバッグするレコードを指定することはできません。Salesforce がランダムに 1 つ選択します。
選択されたレコード (randomyl) は選択を続行します。そのため、テスト用にそのレコードを編集して生年月日を変更するだけです。準備ができたらアクティブ化します。
サンドボックスでアクティベーションを実行するときは通常、サブセットまたはレコードをテストできるように、開始するための追加の条件(連絡先の名が「A」で始まるなど)を追加します。
メールが送信されないこと以外に、タスクの作成 (パス「請求書の日付に実行」の下) は実際に行われていますか。今日の日付は今日の開始時 (つまり 00:00 時) と見なされ、これは過去の日付であるため、スケジュールされたパス全体がトリガーされていない可能性があります。そのため、今日作成された請求書と請求書の日付 = 今日でテストを実行している場合、スケジュールされたフローは実行されません。
期日が明日の請求書を作成し、「設定」>「ジョブ」>「スケジュールされたジョブ」に移動して、スケジュールされたフローが明日にスケジュールされているかどうかを確認できますか? はいの場合は、時間を確認して、スケジュールされたパスがいつ実行されるか、および電子メールがいつ送信されるかを確認します。
明日まで結果を確認したくない場合は、スケジュールされたパスの時間ソースを InvoiceDate から CreatedDate (日付/時刻フィールド) に変更し、スケジュールされたフローを実行して CreatedDate からたとえば 3 分間の遅延を与えるように選択すると、請求書が作成されてから 3 分後にメールを受信できるようになります。