Duplicatendetectie uitvoeren
Gepubliceerd: november 2016
Is van toepassing op: Dynamics CRM 2015
Er zijn verschillende manieren om duplicatendetectie uit te voeren als u het inschakelt en de regels voor duplicatendetectie publiceert.
Actie |
Beschrijving |
---|---|
Duplicaten detecteren voor een specifieke record |
Gebruik het RetrieveDuplicatesRequest-bericht. U kunt dit bericht bijvoorbeeld gebruiken om alle contactpersonen te vinden die duplicaten zijn van een bepaalde accountrecord. |
Duplicaten detecteren voor een entiteitstype |
Gebruik het BulkDetectDuplicatesRequest-bericht. Dit bericht verzendt een asynchrone taak voor duplicatendetectie die wordt uitgevoerd op de achtergrond. Het BulkDetectDuplicates-bericht wordt gebruikt om de dubbele records voor een opgegeven entiteitstype te zoeken op basis van de query-expressie die in deze berichtaanvraag wordt doorgegeven. De duplicaten worden gedetecteerd op basis van de gepubliceerde regels voor duplicatendetectie voor het entiteitstype. De gedetecteerde duplicaatrecords worden opgeslagen als dubbele records (DuplicateRecord) in Microsoft Dynamics 365. U kunt dubbele records ophalen via de methode Retrieve of de methode RetrieveMultiple. Maximaal 5000 duplicaten worden geretourneerd door de duplicatendetectietaak. |
Duplicaten detecteren tijdens bewerkingen van Create en Update |
Geef de optionele parameter voor duplicatendetectie SuppressDuplicateDetection door door een waarde toe te voegen aan de eigenschap Parameters van de CreateRequest en UpdateRequest. De parameterwaarde SuppressDuplicateDetection bepaalt of de bewerking Create of Update kan worden voltooid:
Notitie Het doorgeven van de optionele parameter CalculateMatchCodeSynchronously is niet vereist. De matchcodes worden gebruikt om duplicaten te detecteren die synchroon worden berekend ongeacht de waarde die in deze parameter wordt doorgegeven. |
Notitie
Als de optionele parameter voor duplicatendetectie is ingesteld op false en een duplicaat wordt gevonden, treedt een uitzondering op en wordt de record niet gemaakt of bijgewerkt.
Dit voorbeeld laat zien hoe u de optie voor duplicatendetectie als onderdeel van de CreateRequest- en UpdateRequest-berichtaanvragen doorgeeft:
// 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);
}
Zie ook
Duplicaatgegevens detecteren
Duplicatendetectie inschakelen
Berichten (aanvraag- en responsklassen) gebruiken met de methode Execute
Duplicatendetectieberichten
© 2017 Microsoft. Alle rechten voorbehouden. Auteursrecht