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.2/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.2/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."
}
}
関連情報
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。