重複ルール テーブル
注意
エンティティとテーブルの違いがわかりませんか? Microsoft Dataverse で「開発者: 用語を理解する」を参照してください。
アプリケーションで重複ルールを構成する方法については、管理者ガイド: データを整理するための重複データ検出ルールの設定 を参照してください。
重複データ検出ルールは次のテーブルを使用して定義されます:
- 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: 0InvariantName:ActiveValue: 1InvariantName:Inactive
選択肢のラベルは変更することができますが、InvariantName の値は変更することができません。
一部のシステム テーブルには、複数のアクティブまたは非アクティブ状態があります。次の表に、複数のアクティブまたは非アクティブ状態を持つテーブルの例を示します。
| StateCode | アクティブな状態 | 非アクティブ状態 |
|---|---|---|
| Appointment.StateCode | Open、Scheduled |
Completed、Canceled |
| CampaignActivity.StateCode | Open |
Closed、Canceled |
| CampaignResponse.StateCode | Open |
Completed、Canceled |
| Contract.StateCode | Draft、Invoiced、On Hold |
Canceled、Expired |
| ContractDetail.StateCode | Existing、Renewed |
Canceled、Expired |
| Email.StateCode | Open |
Completed、Canceled |
| Fax.StateCode | Open |
Completed、Canceled |
| Incident.StateCode | Active |
Resolved、Canceled、Closed |
| Invoice.StateCode | Active |
Closed、Paid、Canceled |
| KbArticle.StateCode | Draft、Unapproved、Published |
なし |
| Lead.StateCode | Open |
Qualified、Disqualified |
| Letter.StateCode | Open |
Completed、Canceled |
| Opportunity.StateCode | Open |
Won、Lost |
| PhoneCall.StateCode | Open |
Completed、Canceled |
| Quote.StateCode | Draft、Active |
Won、Closed |
| SalesOrder.StateCode | Active、Submitted、Invoiced |
Canceled、Fulfilled |
| ServiceAppointment.StateCode | Open、Scheduled |
Closed、Canceled |
| Task.StateCode | Open |
Completed、Canceled |
たとえば、ExcludeInactiveRecords 列を true に設定した場合、Active、Submitted、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 特殊メッセージ
DuplicateRuleCondition は DuplicateRule の子テーブルです。 これらのテーブルを取得または修正するためのアクセスは、関連付けられている DuplicateRule に対するアクセスに依存します。 詳細については、DuplicateRuleCondition メッセージ を参照してください。
次の特殊メッセージも使用することができます。
| メッセージ | Web API 操作 | SDK アセンブリ |
|---|---|---|
| CompoundUpdateDuplicateDetectionRule | CompoundUpdateDuplicateDetectionRule Action | CompoundUpdateDuplicateDetectionRuleRequest |
関連項目
duplicaterule EntityType
duplicaterulecondition EntityType
重複データの検出
重複データ検出の有効化と無効化
重複データ検出を実行する
重複データ検出のメッセージ
サンプル: 重複データ検出を有効にし、重複を取得する
サンプル: レコードの作成および更新時の重複データ検出の使用
サンプル: 複数の重複レコードを検出する
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
フィードバックの送信と表示