ADVERTISEMENT

【Salesforce】入力規則が想定と違う時の監査ログと履歴で追う方法

【Salesforce】入力規則が想定と違う時の監査ログと履歴で追う方法
🛡️ 超解決

Salesforceで入力規則を設定したものの、意図したとおりに動かない、あるいは想定外のタイミングでバリデーションエラーが発生するといった経験は珍しくありません。入力規則の動作が期待と異なる場合、原因を特定するために監査ログや項目履歴を活用することが効果的です。本記事では、入力規則が想定と違うときに、監査ログと項目履歴を使って問題の根本を追跡する具体的な方法を解説します。実際の操作手順や失敗パターンも交えながら、トラブルシューティングに役立つ情報を整理しました。

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

  • 最初に見る場所: 入力規則の定義そのものではなく、まず「監査ログ」で変更履歴を確認し、次に「項目履歴」で関連フィールドの値変化をチェックします。
  • 切り分けの軸: 入力規則が機能しない原因を「ルールの設定ミス」「権限の影響」「データの状態」に分類して調査を進めます。
  • 注意点: 監査ログや項目履歴は管理者以外が参照できない場合があります。会社のポリシーに従い、必要に応じてシステム管理者に確認を依頼してください。

ADVERTISEMENT

1. 入力規則が想定と違う動作を引き起こす主な原因

入力規則の動作が期待と異なる場合、原因は大きく分けて三つに分類できます。一つ目は入力規則の定義自体に誤りがあるケース、二つ目はユーザの権限やプロファイルによってバリデーションが適用されないケース、三つ目はデータの更新タイミングや保存処理の順序に起因するケースです。いずれの原因であっても、監査ログと項目履歴を確認することで状況を明確に把握できます。

まずは入力規則の式が正しいかどうかを確認します。例えば、エラーメッセージが表示されない場合は、条件式が常に偽になっている可能性があります。また、特定のユーザだけがエラーを回避できる場合は、権限設定が関係しているかもしれません。さらに、項目履歴を確認すると、あるフィールドが更新された瞬間にバリデーションがかかるのか、それとも保存時全体で評価されるのかが分かります。

これらの原因を効率よく特定するために、まずは監査ログで入力規則そのものの変更履歴を追い、次に項目履歴で関連フィールドの値の変化を確認するという順序で進めるとよいでしょう。

2. 監査ログで入力規則の変更履歴を追跡する

監査ログは、誰がいつ入力規則を作成・変更・削除したかを記録します。想定と異なる動作が最近の変更によって引き起こされた場合、まず監査ログを確認することで原因を特定できます。

監査ログを表示する手順

  1. Salesforceの設定画面(歯車アイコン)から「設定」を開きます。
  2. 「クイック検索」ボックスに「監査ログ」と入力し、「監査ログ」を選択します。
  3. 「イベント監査ログ」の一覧から「入力規則」に関連するログを探します。または「監査ログをダウンロード」からCSVファイルを取得してExcelでフィルタリングすることもできます。
  4. ログの「アクション」列で「編集」「削除」などの変更を確認し、「変更日時」と「ユーザ名」を照合します。
  5. 気になる変更があれば、その時点の入力規則の定義を確認します。監査ログには変更前後の値が記録されているため、式やエラーメッセージの差分を把握できます。

例えば、あるユーザから「エラーメッセージが表示されなくなった」という報告があった場合、監査ログで直前の入力規則の編集者を特定できます。編集者が誤って条件式から必須項目を削除していたケースも少なくありません。

監査ログで確認すべき項目

  • アクション: 「編集」「削除」「新規作成」のいずれかを確認。
  • 変更日時: 問題が発生した日時と前後関係をチェック。
  • ユーザ名: 誰が変更したか。権限のないユーザが操作していないか確認。
  • 変更前/変更後の値: 式やエラーメッセージの具体的な差分。

ただし、監査ログの保存期間はエディションによって異なり(通常180日~1年)、古いログは参照できない場合があります。その場合は後述の項目履歴を併用します。

3. 項目履歴で特定のフィールド変更を確認する方法

項目履歴は、特定のオブジェクトで追跡対象に設定されたフィールドの値の変化を記録します。入力規則が特定のフィールドの値を条件にしている場合、そのフィールドの履歴を調べることで、いつ、どのような値に変わったのかを確認できます。

項目履歴を有効にする手順(管理者向け)

  1. 「設定」→「オブジェクトマネージャ」から対象のオブジェクト(例:取引先、商談)を選択。
  2. 「項目と関係」→「項目履歴の設定」を開きます。
  3. 入力規則で条件に使用しているフィールドを「追跡対象」に追加します。
  4. 保存後、そのフィールドの変更がレコードの「関連リスト」→「項目履歴」に記録されるようになります。

項目履歴を参照する手順(一般ユーザ・管理者共通)

  1. 問題が発生しているレコードの詳細ページを開きます。
  2. 「関連リスト」セクションにある「項目履歴」をクリックします。
  3. 一覧で「項目名」「旧値」「新値」「変更日時」「変更者」を確認します。
  4. 入力規則がエラーを発生させたタイミングと、条件フィールドの値が変わったタイミングを比較します。

例えば、商談の「金額」フィールドが100万円を超えたらエラーにする入力規則があるとします。エラーが発生したレコードの項目履歴を見ると、金額が90万円から110万円に変更された直後にエラーが出ていることがわかります。これにより、入力規則自体は正しく動作していることが確認できます。

4. 入力規則の設定ミスを特定するためのチェックポイント

監査ログと項目履歴を確認しても原因がはっきりしない場合、入力規則の設定そのものに問題がないか、以下のチェックポイントを確認します。

確認項目 詳細 失敗例
エラー条件式 式がTRUEのときにエラーになるか。関数の使い方に誤りがないか。 「ISBLANK(Field__c)」と書くべきところを「ISBLANK(Field__c)=TRUE」と冗長に書いて動作が不安定になる。
エラーメッセージの表示場所 エラーメッセージが特定のフィールドに関連付けられているか、レコード全体に表示されるか。 エラーメッセージを「取引先名」に設定したが、ユーザが別のフィールドを編集していてメッセージが表示されない。
有効化ステータス 入力規則が「有効」になっているか。 開発中に無効化したまま本番環境にデプロイしてしまった。
権限(プロファイル・権限セット) 「入力規則の除外」権限が付与されていないか。また、参照権限のないフィールドを条件に使っていないか。 システム管理者だけが編集できる項目を条件にした入力規則が、一般ユーザでは常にエラーにならない。
実行タイミング 「保存前」「保存後」のどちらで評価されるか(カスタムボタンやフローからの保存で異なる)。 APIからの一括更新では入力規則がバイパスされる設定になっている。

これらのチェックポイントを基に、最初に監査ログで変更履歴を確認し、次に項目履歴でデータの動きを追うことで、原因の切り分けが効率的に行えます。

5. 管理者権限と入力規則の関係を理解する

入力規則の動作はユーザの権限によって影響を受けます。特にシステム管理者は「入力規則の除外」権限を持つため、管理者がレコードを保存する際に入力規則が適用されません。このため、一般ユーザだけがエラーになるケースでは、管理者がテストしても問題を再現できないことがあります。

また、プロファイルや権限セットで「入力規則の除外」が有効になっているユーザは、すべての入力規則を無視できます。これは特定の権限セットが誤って割り当てられた場合に、想定外のユーザがバリデーションをパスする原因となります。監査ログで「権限セットの割り当て」履歴も確認するとよいでしょう。

さらに、入力規則で使用するフィールドに対する参照権限がユーザにない場合、そのフィールドは条件式の中で「NULL」として扱われることがあります。例えば、参照権限のない「部署コード」フィールドを条件に使うと、一般ユーザは常に条件が偽となり、意図したバリデーションが機能しません。

6. よくある質問とトラブルシューティング

ここでは、入力規則のトラブルでよく寄せられる質問とその対策をまとめます。

Q1. 監査ログが見つからない、または何も記録されていない

監査ログはシステム管理者のみがアクセス可能です。権限がない場合は管理者に依頼してください。また、監査ログの保存期間を過ぎていると古いログは削除されています。その場合は項目履歴やデプロイ履歴から情報を補完します。

Q2. 項目履歴に変更が記録されていない

項目履歴は事前に追跡対象として設定する必要があります。設定されていないフィールドの履歴は記録されません。また、項目履跡は保存時のみ記録されるため、数式フィールドや参照項目の値変化は記録されない点に注意してください。

Q3. 入力規則を無効にしたはずなのにエラーが続く

入力規則を無効にした場合、その反映には数分かかることがあります。また、キャッシュが残っていることがあるため、ブラウザをリフレッシュして再試行してください。それでも改善しない場合は、別の入力規則が重複して有効になっていないか確認します。

Q4. 一般ユーザとシステム管理者で動作が異なる

これは「入力規則の除外」権限の影響である可能性が高いです。管理者はテスト用に機能をバイパスできるため、一般ユーザと同じ権限でテストするには「すべてのデータの参照・編集」権限を一時的に外すか、一般ユーザ用のテストアカウントを作成して検証します。

7. まとめ

入力規則が想定と違う動作をする場合、監査ログと項目履歴を活用することで原因を効率的に特定できます。まず監査ログで入力規則そのものの変更履歴を確認し、次に項目履歴で関連フィールドの値の変化を追うという順序が基本です。また、権限設定や実行タイミングなど、入力規則の動作に影響を与える要素を総合的にチェックすることで、再現性の高いトラブルシューティングが可能になります。これらの手順を日常の運用に取り入れ、入力規則の不具合に迅速に対処してください。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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

ADVERTISEMENT