다음을 통해 공유


엔터티에 대한 대체 키 정의

 

게시 날짜: 2016년 11월

적용 대상: Dynamics CRM 2015

모든 Microsoft Dynamics 365 레코드에는 GUID로 정의된 고유 식별자가 있습니다. 이는 각 엔터티의 기본 키입니다. 외부 데이터 저장소와 통합해야 하는 경우 외부 데이터베이스 테이블에 열을 추가하여 Dynamics 365에 있는 고유 식별자에 대한 참조를 포함할 수 있습니다. 따라서 Dynamics 365 레코드에 대한 링크의 로컬 참조를 가질 수 있습니다. 그러나 경우에 따라 외부 데이터베이스를 수정할 수 없습니다. 대체 키를 사용하면 이제 외부 데이터 저장소가 사용하는 고유한 식별자(또는 열의 조합)에 해당하는 Dynamics 365 엔터티에 특성을 정의할 수 있습니다. 이 대체 키를 사용하여 기본 키 대신 Dynamics 365에서 레코드를 고유하게 식별할 수 있습니다. 사용자는 어떤 특성이 레코드에 대한 고유 식별자를 나타내는지 정의할 수 있어야 합니다. 엔터티에 고유한 특성을 식별한 후에는 사용자 지정 사용자 인터페이스(UI)를 통해 또는 코드에서 대체 키로 선언할 수 있습니다. 이 항목은 데이터 모델에서 대체 키를 정의하는 방법에 대한 정보를 제공합니다.

참고

Microsoft Dynamics CRM Online 조직의 경우 이 기능은 조직이 Dynamics CRM Online 2015 업데이트 1로 업데이트된 경우에만 사용할 수 있습니다. 이 기능은 Dynamics CRM(온-프레미스)에서는 사용할 수 없습니다.

이 항목의 내용

대체 키 만들기

대체 키 검색 및 삭제

대체 키에 대한 색인 만들기 모니터링

대체 키 만들기

프로그래밍 방식으로 또는 사용자 지정 도구를 사용하여 대체 키를 만들 수 있습니다. 사용자 지정 도구 사용에 대한 자세한 내용은 CRM 레코드에 대한 대체 키 정의를 참조하십시오.

대체 키를 프로그래밍 방식으로 정의하려면 먼저 유형 EntityKeyMetadata의 개체를 만들어야 합니다. 이 클래스는 키 특성을 포함합니다. 키 특성이 설정되면 CreateEntityKeyRequest 메시지를 사용하여 엔터티에 대한 키를 만들 수 있습니다. 이 메시지는 엔터티 이름과 EntityKeyMetadata 값을 입력으로 키를 만듭니다.

대체 키를 만들 때는 다음 제약 조건을 알고 있어야 합니다.

  • 키 정의에서 유효한 특성

    다음과 같은 종류의 특성만 대체 키 정의에 포함될 수 있습니다.

    특성 유형

    표시 이름

    DecimalAttributeMetadata

    10진수

    IntegerAttributeMetadata

    정수

    StringAttributeMetadata

    한 줄 텍스트

  • 유효한 키 크기

    키를 만들 때 시스템은 총 키 크기가 키당 900바이트 및 키당 16개 열 같은 SQL 기반 색인 제약 조건을 위반하지 않는지를 포함하여 해당 키를 플랫폼에서 지원할 수 있는지를 확인합니다. 키 크기가 제약 조건을 충족하지 않는 경우 오류 메시지가 표시됩니다.

  • 엔터티에 대한 대체키 정의의 최대 수

    Dynamics 365 인스턴스에서 엔터티에 대한 최대 5개의 대체 키를 정의할 수 있습니다.

대체 키 검색 및 삭제

대체 키를 검색하거나 삭제해야 하는 경우 코드를 작성하지 않고 사용자 지정 UI를 사용할 수 있습니다. 하지만 SDK는 대체 키를 프로그래밍 방식으로 검색하고 삭제하기 위한 다음 두 가지 메시지를 제공합니다.

메시지 요청 클래스

설명

RetrieveEntityKeyRequest

지정된 대체 키를 검색합니다.

DeleteEntityKeyRequest

지정된 대체 키를 삭제합니다.

엔터티에 대한 모든 키를 검색하려면 EntityMetadata 클래스의 새 Keys 속성을 사용합니다. 엔터티의 키 배열을 가져옵니다.

대체 키에 대한 색인 만들기 모니터링

대체 키는 데이터베이스 인덱스를 사용하여 고유성을 적용하고 조회 성능을 최적화합니다. 테이블에 기존 레코드가 많은 경우 인덱스를 만드는 데 시간이 오래 걸릴 수 있습니다. 인덱스 만들기를 백그라운드 프로세스로 수행하여 사용자 지정 UI 및 솔루션 가져오기의 응답성을 증가시킬 수 있습니다.AsyncJob 속성은 색인 만들기를 수행하는 비동기 작업을 나타냅니다.EntityKeyIndexStatus 속성은 키의 상태를 색인 만들기 작업 프로세스로 지정합니다. 상태는 다음 중 하나가 될 수 있습니다.

  • 보류 중

  • 진행 중

  • 활성

  • 실패

API를 사용하여 대체 키를 만들면 색인 만들기가 실패하는 경우 실패의 원인에 대한 세부 사항을 드릴하고 문제를 해결하고 ReactivateEntityKeyRequest 메시지를 사용하여 키 요청을 다시 활성화할 수 있습니다.

색인 만들기 작업이 보류 중이거나 진행 중인 동안 대체 키를 삭제하는 경우 작업은 취소되고 색인이 삭제됩니다.

참고 항목

대체 키를 사용하여 레코드 만들기
변경 내용 추적을 사용하여 데이터를 외부 시스템과 동기화
Upsert를 사용하여 레코드 삽입 또는 업데이트

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