ADVERTISEMENT

【Salesforce】スケジュールトリガーフローで困った時の監査ログと履歴で追う方法

【Salesforce】スケジュールトリガーフローで困った時の監査ログと履歴で追う方法
🛡️ 超解決

Salesforceでスケジュールトリガーフローを設定しても、期待通りに動作しないことはありませんか。「設定したはずのフローが実行されない」「なぜかエラーになる」「処理結果が想定と違う」といったトラブルは意外と多く発生します。原因の特定に時間を取られる前に、システムが残すログを活用することが重要です。本記事では、監査ログ(Setup Audit Trail)とフローの実行履歴(Flow History)を用いて、問題の根本を効率的に突き止める方法を具体的に解説します。これらのログを正しく読めば、設定ミスやタイミングのずれを見つけやすくなります。

【要点】この記事で確認すること

  • 最初に見る場所: フローの実行履歴(Flow History)と監査ログ(Setup Audit Trail)の2つを開くこと。これらに問題の手がかりが集約されています。
  • 切り分けの軸: フロー定義の問題(条件式・スケジュール設定の誤り)か、実行環境の問題(権限・データ状態・API制限)か。ログの内容でどちらに属するか判断します。
  • 注意点: 監査ログは過去180日間のみ保持されます。また、フロー履歴を保存するためには事前にフローの設定で「履歴を保存」を有効にしておく必要があります。会社PCではこれらの設定変更を勝手に行わず、必ず管理者に確認してください。

ADVERTISEMENT

1. スケジュールトリガーフローの基本とトラブルの主な原因

スケジュールトリガーフローは、レコードの作成・更新時、または特定の日時条件を満たしたときに自動実行されるフローです。大きく分けて「レコードトリガーフロー(スケジュールパス)」と「プラットフォームイベントトリガーフロー」がありますが、ここでは時間依存の処理全般を扱います。トラブルの原因として頻出するのは次の3種類です。

  • フロー定義の設定ミス: 開始条件のオブジェクト・条件式・スケジュール日時フィールドの指定が誤っている。
  • 実行環境の制約: フロー実行者の権限不足、共有ルール、Apexトリガーとの競合、ガバナ制限(1日あたりのスケジュールフロー実行数など)。
  • データの状態問題: 条件評価時に参照する項目が空、ルックアップ先が存在しない、数式がエラーを返すなど。

これらを切り分けるために、監査ログとフロー実行履歴が強力な味方になります。

2. 監査ログ(Setup Audit Trail)で設定変更の履歴を追跡する

2-1. 監査ログの確認手順

  1. Salesforce画面右上の歯車アイコンをクリックし、「設定」を開きます。
  2. 左側のクイック検索ボックスに「監査ログ」と入力し、「監査ログ(Audit Trail)」をクリックします。
  3. 「表示」ボタンをクリックすると、直近の操作履歴が一覧で表示されます。
  4. 日付、ユーザ、操作内容を確認し、対象のフローに関する変更(作成、編集、有効化、無効化など)がないか絞り込みます。
  5. 必要に応じて「エクスポート」でCSV出力し、チームで共有することも可能です。

監査ログは過去180日間の変更を記録します。たとえば「先週までは動いていたのに、今週動かなくなった」という場合、このログで誰かがフローを編集していないか確認できます。特に「フローのバージョンをアクティブにした」「条件式を変更した」というエントリがないか重点的に見てください。

2-2. 監査ログから読み取るべきポイント

監査ログの「操作」列には「FlowDefinition が作成されました」「FlowVersion が有効化されました」といった情報が表示されます。しかし、具体的な変更内容までは記録されません。あくまで「いつ・誰が・何を変更したか」を把握するためのものです。もし変更履歴が見つからない場合は、問題が設定変更ではなく実行環境側にある可能性が高いです。

3. フロー実行履歴(Flow History)でエラーの詳細を確認する

3-1. フロー実行履歴を開く方法

  1. 設定から「フロー」を検索し、対象のフロー名をクリックします。
  2. フロー詳細ページの「関連」タブ(または「フロー履歴」関連リスト)を開きます。
  3. 「実行履歴(Flow History)」が表示されなければ、フローの設定で「履歴を保存」が有効になっているか確認してください。無効の場合は保存されません。
  4. 一覧から該当する実行レコードをクリックすると、各要素の実行結果やエラーメッセージが表示されます。
  5. 特に「エラー」と表示されている要素を確認し、原因を特定します。エラー内容が「CANNOT_INSERT_UPDATE_ACTIVATE_ENTITY」などであればトリガー競合、「REQUIRED_FIELD_MISSING」なら必須項目不足を示します。

3-2. スケジュール関連のトラブルと履歴の読み方

スケジュールトリガーフローでは、フローが実行されるタイミングが重要です。実行履歴の「開始日時」とフローが参照したレコードの「スケジュール日時フィールド」の値を比較してください。よくあるのは、チェック条件が「現在日時 >= スケジュール日時」になっているが、タイムゾーンがUTCとローカルのずれで想定より早く(または遅く)実行されるケースです。履歴で実行された時間を見れば、意図した時間か判断できます。

4. トラブル原因と確認箇所の比較表

現象 考えられる原因 確認すべきログ/履歴
フローが全く実行されない スケジュール条件を満たすレコードがない、フローがアクティブでない 監査ログ(最終アクティブ化日時)、フロー実行履歴(該当時間帯にレコードがない)
実行はされているがエラーになる 権限不足、必須項目欠落、ルックアップ先不在 フロー実行履歴のエラーメッセージ、要素出力値
結果が想定と異なる 条件式のロジック誤り、更新する項目の指定間違い フロー実行履歴の各要素の出力値(デバッグログ的に確認)

5. 失敗パターンと具体的な対処例

パターン1:フローが1度も実行されない

監査ログを確認しても設定変更はなく、フロー実行履歴にも何も記録されていません。この場合、まずはフローがアクティブなバージョンであることを確認します。複数のバージョンがあると、最新のアクティブバージョンが適用されます。また、スケジュール条件の「開始オブジェクト」が正しいか、条件式に誤りがないかを見直します。よくあるのは「スケジュール日時」に文字列フィールドを指定してしまっているケースです。日付/日時型フィールドを指定しなければなりません。

パターン2:エラー「REQUIRED_FIELD_MISSING」で止まる

フローがレコードを更新しようとしたときに必須項目が空白であると発生します。実行履歴のエラーが含まれる要素をクリックし、どのフィールドが欠落しているかを特定します。対処として、フローの中で該当フィールドに値を設定するステップを追加するか、トリガー条件に必ず値が入っていることを前提とするなら条件式でフィルタリングします。

パターン3:スケジュール実行日の計算がずれる

例えば「作成から7日後」に処理したい場合、フロー内で「CreatedDate + 7」と計算しても、期待した日時にならないことがあります。これはユーザのタイムゾーンとSalesforce内部のUTCの違いが原因です。実行履歴でフローが実際に起動した日時を確認し、想定との差を調べてください。必要に応じて数式で調整するか、フローの「スケジュール日時」設定でタイムゾーンを明示的に指定します。

6. 管理者が確認すべきポイントと注意事項

スケジュールトリガーフローのトラブルシューティングでは、管理者が確認すべき設定がいくつかあります。

  • 監査ログのアクセス権限: ユーザに「監査ログの表示」権限がないとログが見られません。管理者権限がない場合はシステム管理者に依頼してください。
  • フロー実行履歴の保存設定: フローの「詳細設定」で「フロー実行履歴を保存」が有効か確認します。有効期限の設定も可能ですが、初期では30日間保存されます。
  • API使用制限: 組織の24時間あたりのスケジュールフロー実行数には上限があります(エディションによって異なります)。監査ログやフロー履歴から実行回数を集計し、制限に達していないか確認します。
  • 権限セット: フローを実行するユーザ(デフォルトは自動化プロセスユーザ)に、必要なオブジェクトの読み取り・編集権限があるか確認します。特に共有ルールでアクセスできないレコードは処理対象外になります。

会社PCでこれらの設定を探す際は、Salesforceの「設定」メニューにアクセスする必要があります。権限が不足している場合は管理者に連絡し、一緒に確認することをおすすめします。

7. よくある質問(FAQ)

Q1: 監査ログに「FlowVersion が有効化されました」と出ているのにフローが動きません。

有効化したバージョンが正しいか、またそのバージョンがアクティブとしてマークされているか確認してください。バージョン管理画面で「アクティブ」になっていなければ、有効化しても動作しません。また、スケジュール条件を満たすレコードが存在するかも改めて確認してください。

Q2: フロー実行履歴が空欄です。

フロー実行履歴が保存されない主な理由は、フローの設定で「履歴を保存」がオフになっているか、保存期間を過ぎていることです。フロー編集画面の「詳細設定」タブで設定を変更できますが、保存期間は組織の設定に依存します。すぐに履歴が必要な場合は、有効にしてから再テストしてください。

Q3: フローの実行が遅延している気がします。

スケジュールトリガーフローは正確な秒単位での実行を保証していません。実際の実行時間は「スケジュール日時」を過ぎてから、数分以内に開始されることが一般的です。もし大幅な遅延(1時間以上)が続くなら、組織全体のフロー実行キューに負荷がかかっている可能性があります。監査ログやフロー履歴で実行開始時間を確認し、サポートに問い合わせてください。

まとめ

スケジュールトリガーフローのトラブルは、監査ログとフロー実行履歴を組み合わせることで効率的に原因を特定できます。監査ログで「いつ、誰が、何を変更したか」を押さえ、フロー履歴で実行結果やエラー詳細を確認すれば、設定ミスと実行環境の問題を切り分けられます。特に、時間関連のずれや権限不足は頻出のため、必ず履歴の日時とエラーメッセージを確認してください。これらのログを定期的に確認する習慣をつけることで、問題の早期発見・早期解決につながります。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

疑問解決ポータル「超解決」の編集チーム。正確な検証と、現場視点での伝わりやすい解説を心がけています。

ADVERTISEMENT