다음을 통해 공유


중복 검색 실행

 

게시 날짜: 2016년 11월

적용 대상: Dynamics CRM 2015

중복 검색을 활성화한 후 중복 검색 규칙을 게시한 후 이를 수행하는 방법은 여러 가지 있습니다.

작업

설명

지정된 레코드에 대한 중복 검색

RetrieveDuplicatesRequest 메시지를 사용합니다. 예를 들어 이 메시지를 사용하여 특정 거래처 레코드에 중복되는 모든 연락처를 찾을 수 있습니다.

엔터티 유형 중복 검색

BulkDetectDuplicatesRequest 메시지를 사용합니다. 이 메시지는 백그라운드에서 실행되는 비동기 중복 검색 작업을 제출합니다.BulkDetectDuplicates 메시지는 이 메시지 요청에 전달된 쿼리 식에 따라 지정 된 엔터티 유형의 중복 레코드를 찾는 데 사용됩니다. 엔터티 유형에 대해 게시된 중복 규칙에 따라 중복 항목이 검색됩니다. 검색된 중복 항목은 Microsoft Dynamics 365에 중복 레코드(DuplicateRecord)로 저장됩니다.Retrieve 메서드 또는 RetrieveMultiple 메서드를 사용하여 중복 레코드를 검색할 수 있습니다.

중복 검색 작업으로 최대 5000개까지 중복 항목이 반환됩니다.

CreateUpdate 작업 중 중복 검색

값을 추가하여 중복 검색 선택적 매개 변수 SuppressDuplicateDetectionCreateRequestUpdateRequest 메시지 요청의 Parameters 속성에 전달합니다.SuppressDuplicateDetection 매개 변수 값은 Create 또는 Update 작업을 완료할 수 있는지 여부를 결정합니다.

  • true – 중복 항목이 있을 경우 레코드를 만들거나 업데이트합니다.

  • false - 중복 항목이 있을 경우 레코드를 만들거나 업데이트하지 않습니다.

> [!NOTE] >

CalculateMatchCodeSynchronously 선택적 매개 변수를 전달할 필요는 없습니다. 중복 항목을 검색하는 데 사용되는 일치 코드는 이 매개 변수에 전달된 값에 관계 없이 동기적으로 계산됩니다.

참고

중복 검색 선택적 매개 변수를 false로 설정하고 중복 항목이 있을 경우 예외가 발생하고 레코드가 만들어지거나 업데이트되지 않습니다.

다음 예제에서는 중복 검색 옵션을 CreateRequestUpdateRequest 매개 변수 요청의 일부로 전달하는 방법을 보여 줍니다.


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

참고 항목

중복 데이터 검색
중복 검색 사용
Execute 메서드와 함께 메시지(요청 및 응답 클래스) 사용
중복 검색 메시지

© 2017 Microsoft. All rights reserved. 저작권 정보