Ejecutar detección de duplicados
Hay varios métodos para realizar la detección de duplicados una vez activada la lista y publicadas las reglas de detección de duplicados.
Recuperar y detectar duplicados para un registro concreto
Detectar y recuperar duplicados:
- Antes de crear una tabla
- Para una tabla existente
- Para otras tablas que se corresponden con reglas de duplicados entre tablas. Por ejemplo, cualquier tabla de cliente potencial que coincida con una tabla de contacto.
Opciones:
- API web: RetrieveDuplicates Function.
- SDK para .NET: RetrieveDuplicatesRequest
Ejemplo: detectar duplicados de un registro concreto con la API web
El ejemplo siguiente muestra cómo detectar duplicados de un registro concreto mediante la función RetrieveDuplicates
.
Solicitud:
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
Respuesta:
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>
]
}
Detectar duplicados para un tipo de tabla
Enviar un trabajo de detección de duplicados asincrónico que se ejecuta en segundo plano. Los duplicados se detectan mediante las reglas de duplicados publicadas para el tipo de tabla. Los duplicados detectados se almacenan como registros DuplicateRecord
en Dynamics 365.
El trabajo de detección de duplicados devuelve un máximo de 5000 duplicados.
Opciones
- API web: BulkDetectDuplicates Action.
- SDK para .NET: BulkDetectDuplicatesRequest
Ejemplo: detectar duplicados de un tipo de tabla mediante la API web
El ejemplo siguiente muestra cómo detectar duplicados para un tipo de tabla creando un trabajo asincrónico con la acción BulkDetectDuplicates
.
Solicitud:
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"
}
Respuesta:
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"
}
La solicitud anterior crea un trabajo de detección de duplicados asincrónico cuyo ID de trabajo se devuelve en la respuesta. Puede usar el ID de trabajo devuelto de la solicitud anterior para obtener registros duplicados en un tipo de tabla, tal como se muestra en el ejemplo siguiente.
Solicitud:
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
El FetchXML equivalente a la solicitud anterior se muestra a continuación.
<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>
Respuesta:
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
}
]
}
El GUID del registro base de se almacena como baserecordid
en los registros DuplicateRecord
. duplicateid
en la respuesta anterior es el identificador único del registro duplicado. asyncoperationid
es el identificador único del trabajo del sistema que creó ese registro. Y ownerid
es el identificador único del usuario o del equipo propietario del registro duplicado. Para obtener más información, consulte Tabla DuplicateRecord.
Nota
Antes de crear y ejecutar trabajos de detección de duplicados, asegúrese de que existen reglas de detección de duplicados adecuadas. Dynamics 365 incluye reglas de detección de duplicados predeterminadas para cuentas, contactos y clientes potenciales, pero no para otros tipos de registros. Si desea que el sistema detecte duplicados para otros tipos de registro, deberá crear una nueva regla. Para obtener información sobre cómo crear una regla de detección de duplicados, consulte Reglas de detección de duplicados.
Detectar duplicados durante operaciones de creación y actualización
La detección de duplicados al crear o actualizar registros solo se aplica cuando la organización ha habilitado la detección de duplicados, la tabla está habilitada para la detección de duplicados y se aplican reglas de detección de duplicados activas. De forma predeterminada, se suprime la detección de duplicados cuando se crean o actualizan registros mediante la API web o SDK para .NET.
Para detectar datos duplicados al crear y actualizar registros, consulte:
- WebAPI: Detección de datos duplicados con la API web
- SDK para .NET: Detección de datos duplicados con SDK para .NET
Consulte también
Mensajes de detección de duplicados
Nota
¿Puede indicarnos sus preferencias de idioma de documentación? Realice una breve encuesta. (tenga en cuenta que esta encuesta está en inglés)
La encuesta durará unos siete minutos. No se recopilan datos personales (declaración de privacidad).