重複ルール テーブル

アプリケーションで重複ルールを構成する方法については、管理者ガイド: データを整理するための重複データ検出ルールの設定 を参照してください。

重複データ検出ルールは次のテーブルを使用して定義されます:

  • DuplicateRule: システム内の重複データを検出するためには、特定のテーブルの種類に対する 重複データ検出ルール を作成します。 同じテーブルの種類に対して複数の検出ルールを作成できます。 ただし、テーブルの種類ごとに一度に公開できる重複データ検出ルールは最大で 5 つです。
  • DuplicateRuleCondition: ルールには、テーブルで表される 1 つ以上の 重複データ検出ルールの条件 を設定できます。 条件は、論理 AND 演算子を使用した場合と同様に結合されます。 重複データ検出ルールでは、ベース テーブルの種類および一致するテーブルの種類を指定します。 重複ルールの条件では、ベース列の名前と一致する列の名前を指定します。 たとえば、取引先企業をベース テーブルとして、また取引先担当者を一致するテーブルとして指定し、双方の姓と住所を比較します。 一致基準は、完全一致、最初の n 文字、最後の n 文字などの演算子で構成されます。

これら 2 つのテーブルは DuplicateRule_DuplicateRuleConditions 関連付けを使用して関連付けられます。

重複データ検出は、既存のレコードの生成されたマッチ コードと、作成した新しい各レコードとを比較することにより機能します。 これらのマッチ コードは、各新しいレコードの作成時に作成されます。 したがって、ちょうど同じ時点で処理される場合は、一つ以上の重複レコードが作成される可能性があります。 作成される重複データ検出に加えて、重複の可能性がある他のレコードをチェックするため、重複データ検出ジョブをスケジュールする必要があります。

重複データ検出ルールはシステム全体で有効になります。 大量データから重複データを検出したり、特定のテーブル レコードの重複データを取得するためには、重複データ検出ジョブを実行する前にこれらのルールを公開する必要があります。 重複データ検出ルールを公開するには、PublishDuplicateRule メッセージ (PublishDuplicateRule Action または PublishDuplicateRuleRequest) を使用します。 重複ルールは、バックグラウンドで実行される非同期処理として公開されます。

これらのテーブルの以下の書き込み可能な列は、重複データ検出ルールの動作を制御します。

重複ルール

Column 内容
BaseEntityName 重複の可能性を評価するレコードのレコードの種類です。
説明設定 重複データ検出ルールの説明です。
DuplicateRuleId 重複データ検出ルールを表す一意の識別子です。
ExcludeInactiveRecords 非アクティブなレコードに重複フラグを設定するかどうかを設定します。
メモ:
既定値は false です。 非アクティブなレコードについて、重複データ検出ルールの条件を満たしていても重複と見なさない場合は、この属性を true に設定します。
詳細: 非アクティブ状態
IsCaseSensitive 演算子の大文字と小文字が区別されるかどうかを示します。
MatchingEntityName 重複の可能性があるとして評価されるレコードのレコードの種類です。
件名 重複データ検出ルールの名前です
所有者 ID 重複データ検出ルールを所有するユーザーまたはチームを表す一意識別子です。
OwnerIdType 所有者がユーザーまたはチームであるかどうか。
StatusCode 重複データ検出ルールの状態の理由です。

非アクティブ状態

ほとんどのシステム テーブルとすべてのカスタム テーブルには、StateCode 列の選択肢が 2 つあります:

  • Value: 0 InvariantName: Active
  • Value: 1 InvariantName: Inactive

選択肢のラベルは変更することができますが、InvariantName の値は変更することができません。

一部のシステム テーブルに、複数のアクティブまたは非アクティブの状態があります。 次の表に、複数のアクティブまたは非アクティブの状態を持つテーブルの例を示します。

StateCode アクティブな状態 非アクティブ状態
Appointment.StateCode OpenScheduled CompletedCanceled
CampaignActivity.StateCode Open ClosedCanceled
CampaignResponse.StateCode Open CompletedCanceled
Contract.StateCode DraftInvoicedOn Hold CanceledExpired
ContractDetail.StateCode ExistingRenewed CanceledExpired
Email.StateCode Open CompletedCanceled
Fax.StateCode Open CompletedCanceled
Incident.StateCode Active ResolvedCanceledClosed
Invoice.StateCode Active ClosedPaidCanceled
KbArticle.StateCode DraftUnapprovedPublished なし
Lead.StateCode Open QualifiedDisqualified
Letter.StateCode Open CompletedCanceled
Opportunity.StateCode Open WonLost
PhoneCall.StateCode Open CompletedCanceled
Quote.StateCode DraftActive WonClosed
SalesOrder.StateCode ActiveSubmittedInvoiced CanceledFulfilled
ServiceAppointment.StateCode OpenScheduled ClosedCanceled
Task.StateCode Open CompletedCanceled

たとえば、ExcludeInactiveRecords 列を true に設定した場合、ActiveSubmitted、および Invoiced の受注のみが重複データ検出中に一致と見なされます。

注意

組織のテーブルと列定義の参照 で説明されているメタデータ ブラウザーを使用して、テーブルで使用可能な StateCode の選択肢を確認できます。

テーブルの StateCode 選択肢を取得するには、テーブルの LogicalName を下記で使用する appointment に置き換えることにより、以下の Web API クエリを使用することができます。

GET [organization URI]/api/data/v9.0/EntityDefinitions(LogicalName='appointment')/Attributes(LogicalName='statecode')/Microsoft.Dynamics.CRM.StateAttributeMetadata/OptionSet?$select=Options

DuplicateRule 特殊メッセージ

DuplicateRule はユーザーが所有するテーブルであり、通常の作成、取得、更新、割り当て、および削除の操作と、アクセスをコントロールする操作が許可されます。 詳細については、DuplicateRule メッセージ を参照してください。

次の特殊メッセージも使用することができます。

メッセージ Web API 操作 SDK アセンブリ
CompoundUpdateDuplicateDetectionRule CompoundUpdateDuplicateDetectionRule Action CompoundUpdateDuplicateDetectionRuleRequest
PublishDuplicateRule PublishDuplicateRule Action PublishDuplicateRuleRequest
PublishXml PublishXml Action PublishXmlRequest
UnpublishDuplicateRule UnpublishDuplicateRule Action UnpublishDuplicateRuleRequest

重複ルールの条件

Column 内容
BaseAttributeName 比較の対象となるフィールドです。
DuplicateRuleConditionId 条件を表す一意の識別子です。
IgnoreBlankValues 空白の値を重複していない値と見なすかどうかを設定します。
メモ:
この列の既定値は false です。 重複データ検出ルールで null 値を一致と見なさない場合は、この属性を true に設定します。
重要:
1 つの条件を持つ重複データ検出ルールの場合、列の値を false に設定すると、システムによって true 値として処理されます。
MatchingAttributeName 基本フィールドと比較されるフィールドです。
OperatorCode このルール条件の演算子です。
重要:
OperatorCode 列を ExactMatch に設定する場合、OperatorParam 列に値を設定しないでください
OperatorParam 演算子が "最初の文字が同じ" または "最後の文字が同じ" である場合の N のパラメーター値です。
重要:
作成または更新オペレーション中は、OperatorParam をゼロに設定しないでください。
RegardingObjectId 条件が関連付けられているオブジェクトを表す一意の識別子です。

DuplicateRuleCondition 特殊メッセージ

DuplicateRuleConditionDuplicateRule の子テーブルです。 これらのテーブルを取得または変更するためのアクセスは、関連付けられている DuplicateRule に対するアクセスに依存します。 詳細については、DuplicateRuleCondition メッセージ を参照してください。

次の特殊メッセージも使用することができます。

メッセージ Web API 操作 SDK アセンブリ
CompoundUpdateDuplicateDetectionRule CompoundUpdateDuplicateDetectionRule Action CompoundUpdateDuplicateDetectionRuleRequest

参照

duplicaterule EntityType
duplicaterulecondition EntityType
コードを使用した重複データの検出
重複データ検出の有効化と無効化
重複データ検出を実行する
重複データ検出のメッセージ
サンプル: 重複データ検出を有効にし、重複を取得する
サンプル: レコードの作成および更新時の重複データ検出の使用
サンプル: 複数の重複レコードを検出する

注意

ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)

この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。