べにおブログ

学んだことを、ゆっくり深く。

重複管理とは何か:一致ルールと重複ルールで重複レコードを防ぐ仕組み

結論:まずこれだけ覚える

Salesforceで重複レコードを防ぐ標準機能は重複管理です。重複管理は必ず2つの設定がセットで動きます。

  • 一致ルール:何をもって「同じレコード」と判定するかの基準を決める
  • 重複ルール:一致した場合にどうするか(警告して保存させる/保存をブロックする)を決める 一致ルールだけでは何も起きません。重複ルールだけでも作れません。「基準」と「処置」の二階建て、これが重複管理の全体像です。

なぜ入力規則ではダメなのか

入力規則は、保存しようとしているそのレコード1件の中身をチェックする機能です。「金額が0以下なら保存させない」「電話番号の書式が違えばエラー」といった判定はできます。 しかし重複判定は、保存しようとしているレコードと、すでに保存されている他のレコードを突き合わせる処理です。入力規則の数式からは他のレコードを検索できないため、「同じ名前と住所の取引先がすでに存在するか」を判定できません。ここが初学者の最初の分かれ道です。

やりたいこと使う機能
1レコード内の値の妥当性チェック入力規則
他のレコードとの重複チェック重複管理(一致ルール+重複ルール)
1項目の値の一意性を担保カスタム項目の[一意]属性(外部IDだけでは一意にならない)
既存データ全体をまとめてスキャンする重複ジョブ(Performance/Unlimited)

一致ルール:何を「同じ」とみなすか

一致ルールは、比較する項目と、その項目の比較方法(一致条件)を定義します。

  • 完全一致:文字列がまったく同じ場合だけ一致とみなす
  • あいまい一致(ファジー):表記ゆれを許容して一致とみなす。Salesforceは名前・住所・会社名などに専用のアルゴリズムを用意しており、たとえば「123 Market St」と「123 Market Dr」のように一部だけ違う住所をスコア計算して判定します Salesforceは取引先(法人)・取引先責任者・リード・個人取引先向けに標準一致ルールをあらかじめ用意しています。標準ルールで足りない場合は、サポートされる項目を最大10項目まで組み合わせたカスタム一致ルールを作成できます。 作成した一致ルールは、[有効化]しないと重複ルールや重複ジョブで利用できません。有効化処理が完了してから、重複ルールに関連付けます。

重複ルール:一致したときにどうするか

一致ルールが「候補を見つける係」だとすれば、重複ルールは「見つけた後の処置を決める係」です。重複ルールでは次のことを設定します。

  • 対象オブジェクト
  • 使用する一致ルール(1つの重複ルールに最大3つまで含められます)
  • 新規作成時/編集時それぞれの動作:許可(警告のみ)ブロック(保存させない)
  • 警告メッセージの文言
  • レポートに記録するかどうか
  • ルール条件(必要に応じて、適用するレコードや実行ユーザーの範囲を限定する条件) 1オブジェクトあたり有効化できる一致ルールは最大5つまでです。

「許可」と「ブロック」の使い分け

設定挙動向いている場面
許可(アラート)重複候補を表示して警告するが、ユーザーが押し切れば保存できる本当に別会社の同名レコードがあり得る場合。運用初期の様子見
ブロック重複候補がある限り保存できない絶対に重複を作らせたくない基幹データ

「許可」にしておくと、警告を無視して作られた重複レコードを後からレポートで追跡できます。カスタムレポートタイプで主オブジェクトに取引先、関連オブジェクトに「重複レコード項目」を選ぶと、重複ルールをすり抜けて作成されたレコードの一覧を作れます。


設定手順

  1. [設定]のクイック検索に「一致ルール」と入力し、[一致ルール]を開く。
  2. 標準一致ルールを使う場合は[有効化]。独自の基準が必要なら[新規ルール]でオブジェクトを選び、比較する項目と一致条件(完全一致/あいまい)を指定して保存し、有効化する。
  3. クイック検索に「重複ルール」と入力し、[重複ルール]→[新規ルール]で対象オブジェクトを選ぶ。
  4. 使用する一致ルールを選択し、レコード作成時・編集時の動作を「許可」か「ブロック」で指定する。
  5. 警告メッセージを設定し、保存して有効化する。
  6. テストユーザーで実際に重複レコードを作成し、警告またはブロックが動作することを確認する。

よくある質問(FAQ)

Q. すでに組織内にある既存の重複レコードをまとめて見つけられますか? A. 重複ルールだけで組織内の既存データ全体を一括スキャンすることはできません。既存データをまとめて洗い出す場合は、Performance EditionまたはUnlimited Editionで、一致ルールを使った重複ジョブを実行します。重複レコードセットは、重複ルールまたは重複ジョブが特定した候補を保持するレコードです。 Q. 項目に[一意]を付ければ重複は防げますか? A. 防げるのは「その1項目の値がまったく同じ場合」だけです。「取引先名と請求先住所の組み合わせで判定したい」「表記ゆれも拾いたい」といった要件には対応できません。複数項目・あいまい一致が必要なら重複管理を使います。 Q. データローダーでの一括取込にも重複ルールは効きますか? A. 有効な重複ルールの[ブロック]に該当する行は、Data Loaderで取込エラーになることがあります。まずCSVデータと一致条件を確認します。業務上必要な場合に限り、管理下でルールを一時的に無効化または条件調整し、取込後に再有効化してテストします。


出典(Salesforce公式)

  • Stop Users from Creating Duplicate Records — 重複ルールでレコード作成・編集時に警告を表示するか、重複レコードの作成をブロックできることを裏付けています。
  • Matching Rules — 一致ルールが重複ルールと重複ジョブで重複候補を特定する基準であり、法人・個人取引先、取引先責任者、リード向けの標準一致ルールがあることを裏付けています。
  • Customize Matching Rules — カスタム一致ルールで比較項目と一致方法を定義でき、比較項目を最大10項目まで追加できることを裏付けています。
  • Things to Know About Duplicate Rules — 1つの重複ルールに最大3つの一致ルールを含められること、および複数ルールを使う場合に1オブジェクトあたり最大5つの有効な一致ルールを利用できることを裏付けています。
  • Differences between the ‘External ID’ field and the ‘Unique ID’ field setting — 外部IDと一意属性は別設定であり、外部IDだけでは重複値を禁止しないことを裏付けています。
  • Run Duplicate Jobs in Lightning Experience — 既存データを重複ジョブでスキャンできること、および重複ジョブがPerformance EditionとUnlimited Editionで利用できることを裏付けています。
  • Error ‘Use one of these records?’ in Data Loader — Data Loaderの取込が有効な一致ルール・重複ルールによって拒否される場合があることを裏付けています。