Partager via


Détecter les données en double à l’aide du SDK pour .NET

Le SDK pour .NET Microsoft Dataverse vous permet de détecter les lignes en double pour maintenir l’intégrité des données. Pour obtenir des informations détaillées sur la détection des données dupliquées à l’aide du code, consultez Détecter les doublons à l’aide de code.

Notes

Assurez-vous qu’il existe des règles de détection des doublons appropriées. Dataverse comprend des règles de détection des doublons par défaut pour les comptes, les contacts et les prospects, mais pas pour les autres types de lignes. Si vous souhaitez que le système détecte les doublons pour d’autres types de lignes, vous devez créer une règle.
- Pour plus d’informations sur la création d’une règle de détection des doublons dans l’interface utilisateur, consultez Configurer des règles de détection des doublons pour garder vos données propres.
- Pour plus d’informations sur la création de règles de détection des doublons à l’aide de code, voir Tables de règle de détection des doublons.

Utilisez le message RetrieveDuplicatesRequest pour détecter les doublons avant de créer ou de mettre à jour la ligne

Vous pouvez vérifier par programme si une ligne de table est un doublon ou le sera avant de la créer ou de la mettre à jour en utilisant la classe 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);
}

Utilisez le paramètre SuppressDuplicateDetection pour générer des erreurs lorsque vous créez ou mettez à jour une ligne

Si vous souhaitez que la plateforme génère une erreur lorsqu’une ligne que vous créez est considérée comme une ligne en double, ou si vous mettez à jour une ligne existante afin que les règles détection des doublons soient évaluées, vous devez utiliser les classes CreateRequest ou UpdateRequest avec la méthode IOrganizationService.Execute et appliquer le paramètre SuppressDuplicateDetection défini sur false.

Le code suivant génère une exception InvalidOperationException avec le message A record was not created or updated because a duplicate of the current record already exists. lorsque les événements suivants sont vrais :

  • Détection des doublons est activé pour l’environnement lorsqu’une ligne est créée ou mise à jour.
  • Détection des doublons est activé dans la table des comptes
  • Une règle détection des doublons est publiée qui vérifie si la valeur du nom du compte correspond exactement à une ligne existante
  • Il existe un compte existant avec le nom 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;
    }
}

Voir aussi

Détecter les données en double à l’aide de l’API Web

Notes

Pouvez-vous nous indiquer vos préférences de langue pour la documentation ? Répondez à un court questionnaire. (veuillez noter que ce questionnaire est en anglais)

Le questionnaire vous prendra environ sept minutes. Aucune donnée personnelle n’est collectée (déclaration de confidentialité).