Web API を使用した重複データの検出

データの整合性を維持するために、既存の行の重複テーブル行を検出できます。 コードを使用した重複データの検出の詳細については、コードを使用した重複データの検出 を参照してください。

作成操作中に重複データを検出する

POST 要求で MSCRM.SuppressDuplicateDetection 要求ヘッダーを使用し、既存のレコードの重複レコードの作成を検出します。 MSCRM.SuppressDuplicateDetection ヘッダーに割り当てられる値は、作成または更新操作を完了できるかどうかを決定します。

  • true – 重複データが検出された場合にレコードを作成または更新します。
  • false – 重複データが検出された場合にレコードを作成または更新しません。

基本設定ヘッダー MSCRM.SuppressDuplicateDetection を使用して、 Web API 要求でその値を false に設定します。

注意

適切な重複データ検出ルールが存在することを確認します。 Dataverse には、取引先企業、取引先担当者、潜在顧客のための既定の重複データ検出ルールが組み込まれていますが、その他のレコードの種類のための既定のルールは存在しません。 システムで他のレコードの種類の重複データを検出するには、新しいルールを作成する必要があります。
- UI を使用して重複データの検出ルールを作成する方法については、データを整理するための重複データ検出ルールの設定 を参照してください。
- コードを使用して重複データ検出ルールを作成するには、重複ルール テーブル を参照する

例: Web API を使用した、作成操作中の重複データ検出

次の例は、Web API 要求で MSCRM.SuppressDuplicateDetection ヘッダーを使用して、Create および Update 操作中に重複データを検出する方法を示しています。

要求:

POST [Organization URI]/org1/api/data/v9.0/leads HTTP/1.1
If-None-Match: null
OData-Version: 4.0
OData-MaxVersion: 4.0
Content-Type: application/json
Accept: application/json
MSCRM.SuppressDuplicateDetection: false


{
    "firstname":"Monte",
    "lastname":"Orton",
    "emailaddress1":"monteorton@example.com"
}

同じ emailaddress1 属性を持つ潜在顧客レコードが既に存在する場合、次の応答が返されます。

応答:

HTTP/1.1 500 Internal Server Error  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0

{
    "error": {
        "code": "0x80040333",
        "message": "A record was not created or updated because a duplicate of the current record already exists."
    }
}

MSCRM.SuppressDuplicateDetection ヘッダーに値 true を割り当てて、重複レコードの作成を許可します。

更新操作中に重複データを検出する

PATCH 要求で MSCRM.SuppressDuplicateDetection ヘッダーの値を false に設定して、更新操作中の重複レコードの作成を回避します。 既定では、Web API を使用したレコードの更新時には重複データ検出が実行されません。

例: Web API を使用した、更新プログラム操作中の重複データ検出

次に示す例では、既存のレコードと同じ emailaddress1 属性値を含む潜在顧客のエンティティ レコードを更新しようとします。

要求:

PATCH [Organization URI]/api/data/v9.0/leads(c4567bb6-47a3-e711-811b-e0071b6ac1b1) HTTP/1.1
If-None-Match: null
OData-Version: 4.0
OData-MaxVersion: 4.0
Content-Type: application/json
Accept: application/json
MSCRM.SuppressDuplicateDetection: false
If-Match: * 

{
    "firstname":"Monte",
    "lastname":"Orton",
    "emailaddress1":"monteorton@example.com"
}

応答:

HTTP/1.1 500 Internal Server Error  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0

{
    "error": {
        "code": "0x80040333",
        "message": "A record was not created or updated because a duplicate of the current record already exists."
    }
}

関連情報

.NET 用 SDK を使用した重複データの検出

注意

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

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