ADVERTISEMENT

【Salesforce】一致ルールが想定と違う時の管理者が見るべき原因

【Salesforce】一致ルールが想定と違う時の管理者が見るべき原因
🛡️ 超解決

Salesforceで重複防止を目的として設定した一致ルールが、思った通りに動作しないことは珍しくありません。例えば「取引先の重複を検出できるはずなのに、まったく反応しない」「リードの一致ルールが存在しないはずのレコードを誤って検出する」といったケースです。こうした問題は、多くの場合、設定の細かなミスやルールの動作条件の誤解に起因します。本記事では、管理者の視点から一致ルールのトラブルシューティングに必要な原因特定方法と、具体的な確認手順を解説します。

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

  • 最初に見る場所: 一致ルールの詳細設定画面と、ルールが適用されるオブジェクトの項目定義です。特にルール条件と一致条件の比較対象フィールドを確認します。
  • 切り分けの軸: 端末側(ブラウザのキャッシュ)・アカウント側(プロファイル権限)・管理設定側(ルール自体の設定、組織の重複設定)の3つに分けて問題を切り分けます。
  • 注意点: 会社の運用ポリシーにより、ルールの無効化や削除は事前に変更管理の承認を得てから行ってください。また、運用中のルールを編集すると既存レコードの重複チェックに影響する場合があります。

ADVERTISEMENT

一致ルールの基本動作と期待される挙動

一致ルールは、Salesforceの標準機能「重複ルール」の一部として動作し、新規レコード作成時や更新時に既存レコードとの類似をチェックします。ルールの設定は「設定」→「重複ルール」から行い、各ルールはオブジェクトごとに「アクティブ」「一致条件」「アクション」を定義します。期待される挙動は、ルール条件を満たすレコードが作成・更新された際に、一致条件に基づいて既存レコードとの一致を検出し、指定されたアクション(警告ブロック、許可など)を実行することです。しかし、この挙動が意図通りにならない原因は、多くの場合「ルール条件の設定」「一致条件の定義」「権限設定」の3つに集約されます。

ルール条件と一致条件の違いを理解する

「ルール条件」は、この一致ルールを適用するレコードのフィルター条件です。例えば「ステータスが’確認済み’の取引先のみを対象とする」など、特定の条件下でのみルールを動作させたい場合に使います。一方「一致条件」は、レコード間でどのフィールドを比較して一致とみなすかという定義です。管理者がよく陥る間違いは、この2つを混同して設定することです。想定と違う結果になる場合、まずこの2つの条件が正しく設定されているかを確認しましょう。

一致ルールが正しく機能しない主な原因

原因は大きく分けて「設定ミス」「権限不足」「データの特性」「システムの制限」の4つに分類できます。それぞれ具体的に見ていきます。

設定ミス:ルール条件の記述ミスや論理演算子の誤り

例えば、ルール条件に「取引先種別 = ‘顧客’」と設定したつもりが、実際には「取引先種別 != ‘顧客’」と誤って記述しているケースがあります。また、複数の条件をAND/ORでつなぐ際に、演算子の優先順位を考慮せずに設定すると、意図しないフィルター結果になります。ルール条件の式は、Salesforceの数式言語に従って正確に記述する必要があります。管理者は、ルール編集画面の「条件式を確認」リンクから実際のSOQLクエリを確認できるため、必ずチェックしましょう。

権限不足:プロファイル・権限セットによるルールのスキップ

一致ルールは、組織全体の設定とは別に、特定のユーザープロファイルに対して「重複ルールをバイパスする」権限が設定されている場合があります。この権限が有効なユーザーは、重複ルールのチェックをスキップしてレコードを作成・更新できます。管理者は「設定」→「プロファイル」→該当プロファイルの「システム権限」で「重複ルールのバイパス(Bypass Duplicate Rules)」がオンになっていないか確認してください。また、権限セットでも同様の設定が可能なため、合わせて確認する必要があります。

データの特性:ファジー一致が期待通りに機能しないケース

一致条件で「ファジー一致(類似検索)」を選択している場合、半角/全角の違い、特定の文字列の除去(例:「株式会社」や「(株)」)、誤字脱字などが影響して、思ったような一致が得られないことがあります。例えば、取引先名「株式会社エービーシー」と「ABC株式会社」は、完全一致では異なりますが、ファジー一致では類似度が計算されます。この類似度のしきい値はデフォルトで80%ですが、変更することも可能です。ただし、しきい値を低くすると誤検出が増えるため注意が必要です。

原因特定のための具体的な確認手順

問題の切り分けには、以下の手順を順番に実施してください。各ステップで何を確認すべきかを説明します。

  1. ルールのアクティブ状態と有効範囲の確認:「設定」→「重複ルール」で該当ルールが「アクティブ」になっているか確認します。また、ルールが「すべてのレコード」に適用される設定か、特定の条件付きかを確認します。
  2. 一致条件のフィールドマッピングの確認:ルール編集画面で「一致条件」タブを開き、比較対象のフィールドが正しく選択されているか、またデータ型が一致しているか(例:テキスト vs 数値)をチェックします。数値フィールド同士の比較は完全一致のみです。
  3. テストレコードによる動作確認:実際のデータでルールが動作するかテストします。例えば、重複を意図的に作成して、アラートが表示されるか、ブロックされるかを確認します。Sandbox環境で行うことを推奨します。
  4. デバッグログの取得と分析:Salesforceのデバッグログを有効にし、重複ルールの評価過程を確認します。ログ内の「DML」や「DuplicateRule」関連のメッセージを検索すると、ルールが適用されたか、どの一致条件がマッチしたかがわかります。
  5. 他のルールとの競合チェック:同じオブジェクトに複数のアクティブな重複ルールがある場合、ルール間の優先順位(ルールの順序)が影響することがあります。設定画面でルールの並び順を確認し、意図したルールが先に評価されているか確認します。
  6. ユーザーの権限と「重複ルールのバイパス」の確認:問題が発生しているユーザーのプロファイルと権限セットを確認し、バイパス権限が付与されていないかをチェックします。

よくある失敗パターンと対応策

実際の運用でよく報告される失敗パターンを表にまとめました。

失敗パターン 考えられる原因 対応策
重複が検出されない ルール条件が厳しすぎる、一致条件のフィールドが空 ルール条件を緩和する、除外条件を見直す、フィールドの入力必須化を検討
重複が誤検出される ファジー一致のしきい値が低い、無関係なフィールドを比較している しきい値を上げる(例:80%→90%)、比較フィールドを絞る
ルールが完全に無視される ユーザーにバイパス権限がある、ルールが無効、組織の重複設定がオフ 権限の確認、ルールアクティブ化、「重複ルールを有効化」の確認
API経由の更新でルールが働かない API呼び出し時に「BypassDuplicateRule」ヘッダーが設定されている APIリクエストのヘッダーを確認、不要なら削除するよう開発元に依頼

管理者がチェックすべきシステム設定と権限

一致ルールのトラブルシューティングでは、ルール自体の設定以外に、組織全体の重複設定や、関連するシステム権限の確認が欠かせません。以下のポイントを順に確認してください。

組織の重複設定が有効か

「設定」→「重複ルール」→「組織の重複ルール設定」で、「重複ルールを有効化」がチェックされている必要があります。ここがオフだと、すべての重複ルールが動作しません。

プロファイル・権限セットの「重複ルールのバイパス」

すでに述べた通り、システム権限「重複ルールのバイパス(Bypass Duplicate Rules)」が有効なユーザーは重複チェックをスキップします。この権限は、データ移行や一括更新のために一時的に付与されるケースがありますので、運用が落ち着いたら必ず解除しましょう。

エラーメッセージと監査ログ

ユーザーが「重複が検出されました」というメッセージを見たのに、実際には重複が存在しない場合、ルールの一致条件が意図よりも広く設定されている可能性があります。監査ログ(設定→監査トレイル)で、どのユーザーがいつルールを変更したかを確認し、最近の変更があれば元に戻すことも検討しましょう。

よくある質問(FAQ)

Q1: 一致ルールを変更したのに、すぐに反映されません。どうすればよいですか?
A: 一致ルールの変更は通常数分以内に反映されますが、最長で24時間かかる場合があります。すぐに確認したい場合は、Sandboxでテストするか、営業時間外に一度ルールを無効にして再度有効にすると反映が早まることがあります。

Q2: 特定のユーザーのみ重複ルールが動作しません。何を確認すべきですか?
A: そのユーザーのプロファイルと権限セットで「重複ルールのバイパス」がオンになっていないか確認してください。また、割り当てられているロールやグループで何か特別な設定がないかも確認しましょう。

Q3: 一致ルールのファジー一致で、どの程度の類似度が適切ですか?
A: 一般的には80%から90%が推奨されます。ただし、業種やデータの品質によって適切な値は変わるため、実際のデータでテストしながら調整してください。低すぎると誤検出が増え、高すぎると検出漏れが発生します。

まとめ

一致ルールが想定通りに動作しない場合、まずルール条件と一致条件の設定を詳細に見直しましょう。次に、ユーザーの権限(特にバイパス権限)や組織の重複設定が正しいかを確認します。デバッグログを活用すると、ルールの評価過程を正確に追跡できます。問題の原因を特定したら、Sandboxで変更をテストしてから本番環境に適用することをお勧めします。これらの手順を踏むことで、多くの一致ルールの問題は解決できるはずです。


ADVERTISEMENT

この記事の監修者
✍️

超解決 第一編集部

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

ADVERTISEMENT