Freigeben über


Duplikaterkennung ausführen

 

Veröffentlicht: Januar 2017

Gilt für: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

Es gibt mehrere Möglichkeiten, Duplikaterkennung auszuführen, nachdem Sie sie aktiviert und die Duplikaterkennungsregeln veröffentlicht haben.

Aktion

Beschreibung

Duplikate für einen bestimmten Datensatz erkennen

Verwenden Sie die RetrieveDuplicatesRequest-Nachricht. Beispielsweise können Sie diese Meldung verwenden, um nach allen Kontakten zu suchen, die Duplikate eines bestimmten Firmendatensatzes sind.

Erkennen von Duplikaten für einen Entitätstyp

Verwenden Sie die BulkDetectDuplicatesRequest-Nachricht. Diese Meldung übermittelt einen asynchronen Duplikaterkennungsauftrag, der im Hintergrund ausgeführt wird. Die Nachricht BulkDetectDuplicates wird verwendet, um die doppelten Datensätze für einen angegebenen Entitätstyp basierend auf dem in dieser Nachrichtenanforderung übergebenen Abfrageausdruck zu suchen. Die Duplikate werden in Übereinstimmung mit den veröffentlichten Regeln für doppelten den Entitätstyp erkannt. Die erkannten Duplikate werden als doppelte Datensätze (DuplicateRecord)-Datensätze in Microsoft Dynamics 365 gespeichert. Sie können doppelte Datensätze abrufen, indem Sie die Methode RetrieveMultiple oder Retrieve verwenden.

Maximal 5000 Duplikate werden durch den Duplikaterkennungsauftrag zurückgegeben.

Erkennen von Duplikaten bei Create- und Update-Vorgängen

Übergeben Sie den optionalen Duplikaterkennungsparameter SuppressDuplicateDetection, indem Sie einen Wert zu der Parameters-Eigenschaft der CreateRequest- und UpdateRequest-Nachrichtenanforderungen hinzufügen. Der SuppressDuplicateDetection-Parameter bestimmt, ob der Create- oder Update-Vorgang abgeschlossen werden kann:

  • true – Den Datensatz nicht erstellen oder aktualisieren, wenn ein Duplikat gefunden wird.

  • false – Den Datensatz nicht erstellen oder aktualisieren, wenn ein Duplikat gefunden wird.

Hinweis

Das Übergeben des optionalen Parameters CalculateMatchCodeSynchronously ist nicht erforderlich. Die Zuordnungscodes, die verwendet werden, um Duplikate zu erkennen, werden synchron berechnet, unabhängig von dem Wert, der in diesen Parameter übergeben wird.

Hinweis

Wenn der optionale Duplikaterkennungsparameter zu false festgelegt ist und ein Duplikat gefunden wird, wird eine Ausnahme ausgelöst und der Datensatz wird nicht erstellt oder aktualisiert.

Im folgenden Beispiel wird gezeigt, wie die Duplikaterkennungsoption im Rahmen der CreateRequest- und UpdateRequest-Nachrichtenanforderungen übergeben wird:


// Connect to the Organization service. 
// The using statement assures that the service proxy will be properly disposed.
using (_serviceProxy = new OrganizationServiceProxy(serverConfig.OrganizationUri, serverConfig.HomeRealmUri,serverConfig.Credentials, serverConfig.DeviceCredentials))
{
    // This statement is required to enable early-bound type support.
    _serviceProxy.EnableProxyTypes();

    _service = (IOrganizationService)_serviceProxy;

    CreateRequiredRecords();

    // Create and account record with the named Proseware, Inc. and already existing Account Number.
    Account account = new Account 
    {
        Name = "Proseware, Inc.",
        AccountNumber = "ACC005"
    };

    // Create operation by suppressing duplicate detection
    CreateRequest reqCreate = new CreateRequest();
    reqCreate.Target = account;
    reqCreate.Parameters.Add("SuppressDuplicateDetection", true); // Change to false to activate the duplicate detection.
    CreateResponse createResponse = (CreateResponse)_service.Execute(reqCreate);
    _dupAccountId = createResponse.id;
    Console.Write("Account: {0} {1} created with SuppressDuplicateDetection to true, ", 
        account.Name, account.AccountNumber);

    // Retrieve the account containing with its few attributes.
    ColumnSet cols = new ColumnSet(
        new String[] { "name", "accountnumber"});

    Account retrievedAccount = (Account)_service.Retrieve("account", _dupAccountId, cols);
    Console.Write("retrieved, ");

    // Update the existing account with new account number.
    retrievedAccount.AccountNumber = "ACC006";                   

    // Update operation – update record, if a duplicate is not found.
    UpdateRequest reqUpdate = new UpdateRequest();
    reqUpdate.Target = retrievedAccount;
    reqUpdate["SuppressDuplicateDetection"] = false; // Duplicate detection is activated.

    // Update the account record.
    UpdateResponse updateResponse = (UpdateResponse)_service.Execute(reqUpdate);
    Console.WriteLine("and updated.");

    DeleteRequiredRecords(promptforDelete);
}

Siehe auch

Doppelte Daten erkennen
Aktivieren der Duplikaterkennung
Verwendung von Nachrichten (Anforderungs- und Antwortklassen) mit der Ausführensmethode
Duplikaterkennungsmeldungen

Microsoft Dynamics 365

© 2017 Microsoft. Alle Rechte vorbehalten. Copyright