次の方法で共有


重複データ検出を実行する

重複データ検出を有効にして重複データ検出ルールを公開した後、いくつかの方法で重複データ検出を実行することができます。

指定されたレコードの重複を検出し、取得する

以下のように重複を検出し、取得します。

  • テーブルを作成する前に
  • 既存のテーブルに対して
  • 複数のテーブルにわたる重複ルールに対応するその他のテーブルに対して。 たとえば、取引先担当者テーブルに一致する潜在顧客テーブル。

オプション:

例: Web APIを使用して、指定されたレコードの重複を検出する

次の例は、RetrieveDuplicates 関数を使用して、指定されたレコードの重複を検出する方法を示しています。

要求:

GET [Organization URI]/api/data/v9.0/RetrieveDuplicates(BusinessEntity=@p1,MatchingEntityName=@p2,PagingInfo=@p3)?@p1={'@odata.type':'Microsoft.Dynamics.CRM.account','accountid':'0d1156d2-1598-e711-80e8-00155db64062'}&@p2='account'&@p3={'PageNumber':1,'Count':50} HTTP/1.1
If-None-Match: null
OData-Version: 4.0
OData-MaxVersion: 4.0
Content-Type: application/json
Accept: application/json

応答:

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0

{
    "@odata.context": "[Organization URI]/api/data/v9.0/$metadata#accounts",
    "value": [
        <Omitted for brevity: JSON data for any matching accounts including all properties>
    ]
}

テーブルの種類の重複を検出する

バックグラウンドで実行される非同期の重複データ検出ジョブを実行します。 重複データは、このテーブルの種類に対する公開済みの重複データ ルールに従って検出されます。 検出された重複データは、DuplicateRecord レコードとして Dynamics 365 に格納されます。

重複データ検出ジョブからは最大 5000 件の重複が返されます。

オプション

例: Web APIを使用して、テーブルの種類の重複データを検出する

次の例は、BulkDetectDuplicates アクションを使用して非同期ジョブを作成し、1 つのテーブルの種類の重複データを検出する方法を示しています。

要求:

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

{
    "Query": {
        "@odata.type": "#Microsoft.Dynamics.CRM.QueryExpression",
        "EntityName": "lead"
    },
    "JobName": "jobname1",
    "SendEmailNotification": false,
    "TemplateId": "07B94C1D-C85F-492F-B120-F0A743C540E6",
    "ToRecipients": [],
    "CCRecipients": [],
    "RecurrencePattern": "",
    "RecurrenceStartTime": "2015-07-15T05:30:00Z"
}  

応答:

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0

{
    "@odata.context": "[Organization URI]/api/data/v9.0/$metadata#Microsoft.Dynamics.CRM.BulkDetectDuplicatesResponse",
    "JobId": "efaff068-7598-e711-80e8-00155db64062"
}

上記の要求により、応答で JobID が返される非同期の重複データ検出ジョブが作成されます。 上記の要求から返される JobID を使用して、以下の例に示すように、テーブルの種類の重複レコードをフェッチできます。

要求:

GET [Organization URI]/api/data/v9.0/asyncoperations(efaff068-7598-e711-80e8-00155db64062)/AsyncOperation_DuplicateBaseRecord
If-None-Match: null
OData-Version: 4.0
OData-MaxVersion: 4.0
Content-Type: application/json
Accept: application/json

上記のリクエストと同等のものを以下に示します。 FetchXML

<fetch>
    <entity name="duplicaterecord">
        <attribute name="owninguser" />
        <attribute name="ownerid" />
        <attribute name="baserecordid" />
        <attribute name="duplicateid" />
        <attribute name="owningbusinessunit" />
        <attribute name="createdon" />
        <attribute name="asyncoperationid" />
        <filter>
            <condition attribute="asyncoperationid" operator="eq" value="efaff068-7598-e711-80e8-00155db64062" />
        </filter>
    </entity>
</fetch>

応答:

HTTP/1.1 200 OK  
Content-Type: application/json; odata.metadata=minimal  
OData-Version: 4.0

{  
   "@odata.context":"[Organization URI]/api/data/v9.0/$metadata#duplicaterecords",
   "value":[  
      {  
         "owninguser":"b3ac4144-6d9a-e711-811c-000d3a75ce72",
         "_ownerid_value":"b3ac4144-6d9a-e711-811c-000d3a75ce72",
         "_baserecordid_value":"3a6fc65b-3f9c-e711-811c-000d3a75ce72",
         "duplicateid":"489a879c-019b-4c28-8539-51ebc850d18f",
         "createdon":"2017-09-19T03:34:25Z",
         "owningbusinessunit":"20a44144-6d9a-e711-811c-000d3a75ce72",
         "_asyncoperationid_value":"efaff068-7598-e711-80e8-00155db64062",
         "_duplicateruleid_value":null,
         "_duplicaterecordid_value":null
      },
      {  
         "owninguser":"b3ac4144-6d9a-e711-811c-000d3a75ce72",
         "_ownerid_value":"b3ac4144-6d9a-e711-811c-000d3a75ce72",
         "_baserecordid_value":"406fc65b-3f9c-e711-811c-000d3a75ce72",
         "duplicateid":"0a4a7dea-1488-4e05-b5eb-c2925ad2925a",
         "createdon":"2017-09-19T03:34:25Z",
         "owningbusinessunit":"20a44144-6d9a-e711-811c-000d3a75ce72",
         "_asyncoperationid_value":"efaff068-7598-e711-80e8-00155db64062",
         "_duplicateruleid_value":null,
         "_duplicaterecordid_value":null
      }
   ]
}

基本のレコードの GUID は、baserecordid として DuplicateRecord レコードに保存されます。 上記の応答の duplicateid は、重複レコードの一意の識別子です。 asyncoperationid は、このレコードを作成したシステム ジョブの一意の識別子です。 また、ownerid は、重複レコードを所有するユーザーまたはチームの一意の識別子です。 詳細については、「DuplicateRecord テーブル」を参照してください。

注意

重複データ検出ジョブを作成して実行する前に、適切な重複データ検出ルールが設定されていることを確認します。 Dynamics 365 には、取引先企業、取引先担当者、および潜在顧客のための既定の重複データ検出ルールが組み込まれています。他のレコードの種類のための既定のルールは存在しません。 システムで他のレコードの種類の重複データを検出するには、新しいルールを作成する必要があります。 重複データ検出ルールを作成する方法の詳細については、「重複データ検出ルール」を参照してください。

作成および更新操作中の重複データ検出

レコードの作成または更新中の重複データ検出は、組織で重複データ検出が有効であり、テーブルが重複データ検出に対応しており、アクティブな重複データ検出ルールが適用されている場合にのみ適用されます。 既定では、Web API または .NET 用 SDK を使用したレコードの作成または更新時には重複データ検出が実行されません。

レコードの作成および更新時に重複データを検出するには、以下を参照してください。

参照

重複データ検出のメッセージ

注意

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

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