Detección de datos duplicados con SDK para .NET

El SDK para .NET de Microsoft Dataverse le permite detectar filas duplicadas para mantener la integridad de los datos. Para obtener información detallada sobre Detección de datos duplicados usando código, consulte Detectar datos duplicados con código.

Nota

Asegúrese de que existen reglas de detección de duplicados adecuadas. Dataverse incluye reglas de detección de duplicados predeterminadas para cuentas, contactos y clientes potenciales, pero no para otros tipos de filas. Si desea que el sistema detecte duplicados para otros tipos de fila, deberá crear una nueva regla.
- Para obtener información sobre cómo crear una regla de detección de duplicados usando la interfaz de usuario, consulte Configurar reglas de detección de duplicados para mantener limpios los datos.
- Para obtener información sobre cómo crear una regla de detección de duplicados usando código, consulte Tablas de reglas de duplicados

Utilice el mensaje RetrieveDuplicatesRequest para detectar duplicados antes de crear o actualizar la fila

Puede verificar mediante programación si una fila de la tabla es un duplicado o será un duplicado antes de crearla o actualizarla utilizando la clase RetrieveDuplicatesRequest.

var account = new Account();
account.Name = "Sample Account";

var request = new RetrieveDuplicatesRequest()
{
    BusinessEntity = account,
    MatchingEntityName = account.LogicalName,
    PagingInfo = new PagingInfo() { PageNumber = 1, Count = 50 }
};

var response = (RetrieveDuplicatesResponse)svc.Execute(request);

if (response.DuplicateCollection.Entities.Count >= 1)
{
    Console.WriteLine("{0} Duplicate rows found.", response.DuplicateCollection.Entities.Count);
}

Utilice el parámetro SuppressDuplicateDetection para generar errores al crear o actualizar la fila

Si desea que la plataforma arroje un error cuando se determina que una nueva fila que crea es una fila duplicada, o si actualiza una fila existente para que se evalúen las reglas detección de duplicados, debe usar las clases CreateRequest o UpdateRequest con IOrganizationService.Execute y aplicar el parámetro SuppressDuplicateDetection establecido en false.

El siguiente código lanzará una excepción InvalidOperationException con el mensaje A record was not created or updated because a duplicate of the current record already exists. cuando las siguientes condiciones se cumplan:

  • Detección de duplicados está habilitado para el entorno cuando se crea o actualiza una fila.
  • La tabla de cuentas tiene detección de duplicados habilitado
  • Se publica una regla detección de duplicados que verifica si el valor del nombre de la cuenta coincide exactamente con una fila existente.
  • Hay una cuenta existente con el nombre Sample Account
var account = new Account();
account.Name = "Sample Account";

var request = new CreateRequest();
request.Target = account;
request.Parameters.Add("SuppressDuplicateDetection", false);

try
{
    svc.Execute(request);
}
catch (FaultException<OrganizationServiceFault> ex)
{
    switch (ex.Detail.ErrorCode)
    {
        case -2147220685:
            throw new InvalidOperationException(ex.Detail.Message);
        default:
            throw ex;
    }
}

Consultar también

Detección de datos duplicados con la API web

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).