Executar detecção de duplicidades
Publicado: novembro de 2016
Aplicável a: Dynamics CRM 2015
Há várias maneiras de executar a detecção de duplicidades após habilitar e publicar as regras de detecção de duplicidades.
Ação |
Descrição |
---|---|
Detectar duplicidades para um registro específico |
Use a mensagem RetrieveDuplicatesRequest. Por exemplo, você pode usar esta mensagem para localizar todos os contatos que estão duplicados de um determinado registro de conta. |
Detectar duplicidades para um tipo de entidade |
Use a mensagem BulkDetectDuplicatesRequest message. Esta mensagem envia um trabalho de detecção de duplicidades assíncronos que é executado em segundo plano. A mensagem BulkDetectDuplicates é usada para localizar registros duplicados de um determinado tipo de entidade com base na expressão de consulta transmitida da solicitação da mensagem. As duplicidades são detectadas de acordo com as regras de duplicidades publicadas para o tipo de entidade. As duplicidades detectadas são armazenadas como registros duplicados (DuplicateRecord) no Microsoft Dynamics 365. Você pode recuperar registros duplicados usando o método Retrieve ou o método RetrieveMultiple. Um máximo de 5.000 duplicidades são retornadas pelo trabalho de detecção de duplicidades. |
Detectar duplicidades durante as operações Create e Update |
Transmitir o parâmetro opcional de detecção de duplicidades SuppressDuplicateDetection adicionando um valor à propriedade Parameters das solicitações de mensagem CreateRequest e UpdateRequest. O valor do parâmetro SuppressDuplicateDetection determina se a operação Create ou de Update pode ser concluída:
Observação A transmissão do parâmetro opcional CalculateMatchCodeSynchronously não é obrigatória. Os códigos de correspondência usados para detectar duplicidades são calculados assincronamente independentemente do valor transmitido nesse parâmetro. |
Observação
Se o parâmetro opcional de detecção de duplicidades estiver definido para false e uma duplicidade for encontrada, uma exceção é lançada e o registro não será atualizado ou criado.
O exemplo a seguir mostra como transmitir a opção de detecção de duplicidades como parte das solicitações de mensagem CreateRequest e UpdateRequest:
// 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);
}
Confira Também
Detectar dados duplicados
Habilitar detecção de duplicidades
Usar mensagens (classes de solicitação e resposta) com o método Execute
Mensagens de detecção de duplicidades
© 2017 Microsoft. Todos os direitos reservados. Direitos autorais