Erkennen von doppelten Daten mit dem SDK für .NET

Mit dem SDK für .NET von Microsoft Dataverse können Sie doppelte Zeilen erkennen, um die Integrität der Daten zu wahren. Ausführliche Informationen zum Erkennen von doppelten Daten mithilfe des Codes, finden Sie unter Erkennen von doppelten Daten mithilfe von Code.

Hinweis

Stellen Sie sicher, dass entsprechende Duplikaterkennungsregeln vorhanden sind. Dataverse enthält Standardregeln zur Duplikaterkennung für Konten, Kontakte und Leads, jedoch nicht für andere Zeilentypen. Wenn das System Duplikate für andere Zeilentypen erkennen soll, müssen Sie eine neue Regel erstellen.
- Informationen darüber, wie Sie eine Duplikaterkennungsregel mithilfe der Benutzeroberfläche erstellen, finden Sie unter Einrichten einer Duplikaterkennungsregel, um Ihre Daten sauber zu halten.
- Informationen zum Erstellen von Regeln zur Erkennung von Duplikaten mithilfe von Code finden Sie unter Tabellen für Duplikatregeln

Verwenden Sie die Nachricht RetrieveDuplicatesRequest, um Duplikate zu erkennen, bevor Sie eine Zeile erstellen oder aktualisieren.

Sie können programmgesteuert überprüfen, ob eine Tabellenzeile ein Duplikat ist oder ein Duplikat sein wird, bevor Sie sie erstellen oder aktualisieren, indem Sie die Klasse RetrieveDuplicatesRequest verwenden.

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);
}

Verwenden Sie den Parameter SuppressDuplicateDetection, um Fehler beim Erstellen oder Aktualisieren von Zeilen auszulösen.

Wenn Sie möchten, dass die Plattform einen Fehler ausgibt, wenn eine neu erstellte Zeile als Duplikat erkannt wird, oder die Aktualisierung einer vorhandenen Zeile zu einer Auswertung der Regeln zur Duplikaterkennung führt, müssen Sie die Klasse CreateRequest oder UpdateRequest mit IOrganizationService verwenden.Execute Methode verwenden und den SuppressDuplicateDetection-Parameter, der auf falsefestgelegt ist, anwenden.

Der folgende Code löst eine InvalidOperationException Ausnahmeregelung mit der Meldung A record was not created or updated because a duplicate of the current record already exists. aus, wenn Folgendes true ist:

  • Die Duplikaterkennung wird für die Umgebung aktiviert, wenn eine Zeile erstellt oder aktualisiert wird.
  • Für die Kontotabelle ist die Duplikaterkennung aktiviert.
  • Eine Regel zur Duplikaterkennung wird veröffentlicht, die überprüft, ob der Kontonamenwert exakt mit einer vorhandenen Zeile übereinstimmt.
  • Es gibt einen vorhandenen Account mit dem Namen 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;
    }
}

Siehe auch

Erkennen von doppelten Daten mit der Web-API

Hinweis

Können Sie uns Ihre Präferenzen für die Dokumentationssprache mitteilen? Nehmen Sie an einer kurzen Umfrage teil. (Beachten Sie, dass diese Umfrage auf Englisch ist.)

Die Umfrage dauert etwa sieben Minuten. Es werden keine personenbezogenen Daten erhoben. (Datenschutzbestimmungen).