Web API を使用した重複データの検出
注意
エンティティとテーブルの違いがわかりませんか? Microsoft Dataverse で「開発者: 用語を理解する」を参照してください。
Microsoft Dataverse Web API を使用すると、データの整合性を維持するために、既存の行の重複テーブル行を検出できます。 コードを使用した重複データの検出の詳細については、コードを使用した重複データの検出 を参照してください。
作成操作中に重複データを検出する
POST 要求中に MSCRM.SuppressDuplicateDetection ヘッダーを使用して、既存のレコードの重複レコードの作成を検出します。 MSCRM.SuppressDuplicateDetection ヘッダーに割り当てられる値は、作成または更新操作を完了できるかどうかを決定します。
true– 重複データが検出された場合にレコードを作成または更新します。false– 重複データが検出された場合にレコードを作成または更新しません。
注意
CalculateMatchCodeSynchronously オプション パラメーターを渡す必要はありません。 重複の検出に使用される一致コードは、このパラメーターに渡される値に関係なく同期的に計算されます。
基本設定ヘッダー 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."
}
}
関連項目
注意
ドキュメントの言語設定についてお聞かせください。 簡単な調査を行います。 (この調査は英語です)
この調査には約 7 分かかります。 個人データは収集されません (プライバシー ステートメント)。
フィードバック
フィードバックの送信と表示