Microsoft Dynamics CRM 2015에서 엔터티에 대한 소개
게시 날짜: 2016년 11월
적용 대상: Dynamics CRM 2015
엔터티는 Microsoft Dynamics 365의 비즈니스 데이터를 모델링하고 관리하는 데 사용되는 기본 구조입니다. 예를 들어, 거래처, 캠페인 및 문제(서비스 케이스) 같은 엔터티는 영업, 마케팅 및 서비스 활동을 추적하고 지원하는 데 사용될 수 있습니다. 엔터티에 특성 집합이 있으며 각 특성은 특정 유형의 데이터 항목을 나타냅니다. 예를 들어, 거래처 엔터티에 Name, Address 및 OwnerId 특성이 있습니다. 개념적으로 엔터티는 데이터베이스 테이블과 비슷하며 엔터티 특성은 테이블 열에 해당합니다.Microsoft Dynamics 365에 엔터티 레코드(또는 단순히 레코드)를 만드는 것은 데이터베이스 테이블에 행을 추가하는 것과 비슷합니다. 엔터티는 시스템, 비즈니스 및 사용자 지정의 세 가지 범주로 나뉩니다. 비즈니스 데이터를 사용하는 개발자와 작업하게 되면 비즈니스와 사용자 지정 엔터티를 사용합니다. 시스템 엔터티는 Microsoft Dynamics 365에서 워크플로 및 비동기 작업 같은 모든 내부 프로세스를 처리하는 데 사용됩니다. 시스템 엔터티는 삭제하거나 사용자 지정할 수 없습니다.
비즈니스 엔터티는 Microsoft Dynamics 365 기본 설치의 일부이며 사용자 지정 사용자 인터페이스에 나타납니다. 거래처, 연락처 및 편지는 비즈니스 엔터티의 예입니다. 설치 후 사용자 지정 엔터티를 Microsoft Dynamics 365에 추가하여 조직의 특정 비즈니스 요구를 해결할 수 있습니다.Microsoft Dynamics 365솔루션에서 비즈니스 및 맞춤 엔터티 및 특성을 맞춤 가능 또는 맞춤 불능으로 설정할 수 있습니다. 사용자 지정 가능한 엔터티 이름을 바꾸거나 새 특성을 추가하거나, 중복 검색 또는 큐 지원 설정 같은 다양한 설정을 변경하여 수정할 수 있습니다. 사용자 지정할 수 없는 엔터티는 수정할 수 없습니다. 사용자 지정, 비관리형 및 관리형 솔루션, 관리되는 속성에 대한 자세한 내용은 솔루션을 사용하여 확장 패키지 및 배포를 참조하십시오.
초기 바인딩 프로그래밍 모델을 사용 중인 경우 엔터티는 거래처 엔터티를 나타내는 Account 클래스처럼 클래스로 표현됩니다. 엔터티 특성은 클래스 속성으로 표현됩니다. 이 클래스는 CrmSvcUtil 도구로 생성됩니다. 자세한 내용은 코드에 초기 바인딩 엔터티 클래스 사용을 참조하십시오. 또한 동적 방식을 사용하여 엔터티 데이터와 작동하는 프로그램을 작성할 수 있습니다. 자세한 내용은 코드에 런타임에 바인딩 엔터티 클래스 사용을 참조하십시오.
참고
Microsoft Dynamics CRM SDK 설명서에서 “엔터티 특성”이라는 용어는 “특성” 및 “속성”(클래스 속성)이라는 용어와 같은 의미로 사용됩니다.
이 항목의 내용
엔터티 메타데이터
엔터티 레코드에 대한 작업
엔터티 소유권 형태
레코드 상태(state) 및 상태(status)
엔터티 이미지
엔터티 메타데이터
Microsoft Dynamics 365 조직의 메타데이터는 엔터티, 특성 및 엔터티 간의 관계에 대한 정의를 포함합니다. 자세한 내용은 Microsoft Dynamics CRM 2015의 메타데이터 및 데이터 모델을 참조하십시오. 개발자로서 조직에 대한 모든 메타데이터를 찾는 데 사용할 수 있는 유용한 서비스 케이스가 많이 있습니다. 메타데이터를 찾아 참조하는 방법은 여러 가지가 있습니다.
엔터티 메타데이터 브라우저를 사용하여 Microsoft Dynamics 365에서 엔터티와 속성을 볼 수 있습니다. 자세한 내용은 조직에 대한 메타데이터 찾아보기를 참조하십시오.
SDK 패키지에는 Microsoft Office Excel 스프레드시트에 같은 정보를 포함하고 있습니다.SDK\Tools\EntityMetadata.xlsx 파일에서 찾을 수 있습니다.
다음 샘플을 사용하여 조직을 위한 메타데이터를 생성할 수 있습니다:
일대다, 다대일 및 다대다 유형의 엔터티 간 관계를 만들 수 있습니다. 다대다 관계에 대한 레코드는 교차 엔터티에 저장됩니다. 관계를 정의한 후 AssociateRequest 메시지 또는 Associate 메서드를 사용하여 지정된 레코드 간에 링크를 만들고 DisassociateRequest 메시지 또는 Disassociate 메서드를 사용하여 지정된 레코드 간의 링크를 제거합니다.
일대다 및 다대일 관계에서 상위 엔터티 레코드의 일부 작업은 하위 엔터티 레코드에 영향을 미칩니다. 연속 변경 동작이 있는 작업에는 할당, 삭제, 병합, 공유, 공유 해제 및 상위 항목 재지정 등이 있습니다. 자세한 내용은 엔터티 관계 동작을 참조하십시오.
엔터티 메타데이터에 사용되는 이름
엔터티, 특성 및 관계에는 여러 가지 이름이 있습니다. 다음 표에는 메타데이터에 사용되는 다양한 이름이 나와 있습니다.
이름 |
설명 |
---|---|
표시 이름 |
사용자에게 표시되는 이름입니다. |
컬렉션 이름 표시 |
표시 이름의 복수 버전입니다. 엔터티에만 적용됩니다. |
논리 이름 |
엔터티 또는 특성의 고유한 이름입니다. 이 이름은 모두 소문자입니다. |
스키마 이름 |
스키마 이름은 만들 때 지정됩니다. 이 이름은 고유해야 합니다. 논리적 이름을 만드는 데 사용됩니다. 이 이름은 파스칼식 대/소문자여야 합니다. 스키마 이름은 초기 바인딩 프로그래밍을 사용하는 경우 엔터티의 클래스를 만드는 데 사용됩니다. |
참고
솔루션의 컨텍스트에서 만들어진 사용자 지정 엔터티, 특성 및 관계의 경우 논리적 이름 및 스키마 이름의 사용자 지정 접두사는 Publisher.CustomizationPrefix 특성에 정의됩니다. 프로그래밍 방식으로 만들어진 사용자 지정 엔터티의 경우 사용자 지정 접두사를 2~8자의 문자열로 설정하며 모두 문자로 시작하는 영숫자 문자입니다. “mscrm”으로 시작할 수 없습니다. 엔터티 메타데이터 사용자 지정과 명명 규칙에 대한 자세한 내용은 Customize 엔터티 메타데이터을 참조하십시오.
엔터티 레코드에 대한 작업
각 엔터티는 다양한 작업을 지원합니다. 예를 들어, 레코드를 만들거나 삭제하고, 레코드를 다른 사용자 또는 팀에 할당합니다. 모든 엔터티 유형 또는 특성에서 모든 작업이 허용되는 것은 아닙니다. 각 특성에 대해 메타데이터는 지정된 작업이 지원되는지 여부를 정의합니다. 예를 들어, IsValidForCreate, IsValidForRead 및 IsValidForUpdate 같은 특성의 속성은 특성을 만들거나 검색하거나 업데이트할 수 있는지 여부를 알려줍니다.추가 정보:특성에 유효한 작업.
작업을 수행하려면 IOrganizationService에서 메서드 중 하나를 호출합니다. 예를 들어, Microsoft Dynamics 365에서 레코드를 만들려면 해당하는 CreateRequest 메시지를 사용하여 IOrganizationService.Create 메서드 또는 IOrganizationService.Execute 메서드를 사용할 수 있습니다. 이러한 작업을 수행 하려면 필요한 권한 및 액세스 권한이 있어야 합니다. 자세한 내용은 Microsoft Dynamics CRM 2015의 보안 모델을 참조하십시오.
다음 표에는 비즈니스 및 사용자 지정 엔터티 레코드에서 허용되는 작업과 이러한 작업을 수행하는 데 사용할 수 있는 메서드와 메시지를 나와 있습니다.
작업 |
설명 |
메서드 및/또는 메시지 |
---|---|---|
만들기 |
사용자 지정 엔터티를 포함하여 특정 엔터티 유형의 레코드를 만듭니다. |
|
업데이트 |
레코드의 내용을 수정합니다. |
|
삭제 |
레코드를 삭제합니다. |
|
검색 |
레코드를 검색합니다. |
|
여러 개 검색 |
레코드 모음을 검색합니다. |
|
할당 |
레코드의 소유권 형태를 변경합니다. 사용자 담당 또는 팀 담당 엔터티에 유효합니다. |
|
공유 |
레코드를 다른 사용자 또는 팀에 액세스를 권한을 부여하거나, 수정 또는 취소합니다. 사용자 담당 또는 팀 담당 엔터티에 유효합니다. |
|
연결 |
엔터티 간에 관계가 있는 레코드와 레코드 모음 간의 링크를 만듭니다. |
|
분리 |
엔터티 간에 관계가 있는 레코드와 레코드 모음 간의 링크를 제거합니다. |
|
상태 설정 |
레코드의 상태를 설정합니다. |
만들기
이 작업을 수행하려면 호출자에게 Create message privileges이 있어야 합니다. 액세스 권한은 만들기 동작에 적용되지 않지만 레코드가 만들어진 후에는 적용됩니다.
레코드를 담당하거나 새로 만든 레코드를 검색하려면 사용자 또는 팀은 새 레코드에 대한 읽기 권한과 액세스 권한이 있어야 합니다. 예를 들어, 거래처에 대한 권한을 만드는 경우 거래처 레코드를 만들고 이를 다른 사용자 또는 팀에 할당할 수 있습니다. 그러나 거래처에 대한 읽기 액세스 권한이 없고 새 레코드에 대한 액세스 권한이 없는 경우 거래처 레코드를 만들고 새 거래처의 담당자가 될 수 없습니다.
업데이트
이 작업을 수행하려면 호출자는 업데이트 중인 엔터티 레코드에 대한 Update message privileges 및 액세스 권한이 있어야 합니다.
레코드를 업데이트하면 데이터를 지정하거나 null을 지정하는 특성만 업데이트됩니다. 다른 모든 값은 그대로 유지됩니다. 또한 업데이트에 유효하지 않은 특성의 데이터를 지정하는 경우 무시됩니다.
삭제
이 작업을 수행하려면 호출자는 삭제 중인 엔터티 레코드에 대한 Delete message privileges 및 액세스 권한이 있어야 합니다.
연속 변경 규칙은 동시에 관련 레코드를 삭제할 것인지 결정합니다. 자세한 내용은 엔터티 관계 동작을 참조하십시오.
일반적으로 잘못 입력한 레코드만 삭제해야 합니다. 일부 레코드 종류의 경우 레코드를 삭제하는 대신 비활성화하거나 종료할 수 있습니다. 일부 레코드 종류는 삭제할 수 없습니다.
검색
이 작업을 수행하려면 호출자는 검색한 엔터티 레코드에 대한 Retrieve message privileges 및 액세스 권한이 있어야 합니다.
여러 개 검색
이 작업을 수행하려면 호출자는 검색한 엔터티 레코드에 대한 Retrieve message privileges 및 액세스 권한이 있어야 합니다.
쿼리 매래 변수를 기반으로 레코드 모음을 검색하려면 쿼리 식 또는 FetchXML 쿼리 언어를 사용할 수 있습니다. 쿼리 식을 사용하면 클래스 계층 구조를 사용하여 쿼리 트리를 만들 수 있습니다. 쿼리 식을 사용하는 메서드는 강력한 유형의 레코드 모음을 반환합니다. FetchXML을 사용하면 XML 언어를 사용하여 쿼리를 만들 수 있습니다. FetchXML은 XML 문자열을 반환합니다. 따라서 쿼리 결과를 사용하기 위해 더 많은 데이터 조작을 수행해야 합니다. 자세한 내용은 쿼리를 사용하여 데이터 검색을 참조하십시오.
할당
사용자 담당 또는 팀 담당 엔터티의 경우 새 소유자에게 레코드를 할당합니다. 자세한 내용은 엔터티 소유권 형태을 참조하십시오. 이 작업을 수행하려면 호출자는 엔터티 레코드에 대한 Assign message privileges 및 액세스 권한이 있어야 합니다.
연속 변경 규칙은 동시에 관련된 레코드를 다른 사용자에게 할당할 것인지 결정합니다. 자세한 내용은 엔터티 관계 동작을 참조하십시오.
레코드가 다른 사용자 또는 팀에 할당되면 ShareToPreviousOwnerOnAssign 특성이 true로 설정된 경우 이전 담당자는 이 레코드에 계속 액세스할 수 있습니다. 그러나 이전 담당자는 더 이상 레코드 소유권 형태를 갖지 않습니다.
공유
사용자 담당 또는 팀 담당 엔터티의 경우 레코드를 다른 사용자 또는 팀과 공유할 수 있습니다. 이 작업을 수행하려면 호출자는 엔터티 레코드에 대한 GrantAccess message privileges, ModifyAccess message privileges, RevokeAccess message privileges 및 액세스 권한이 있어야 합니다.
연속 변경 규칙은 동시에 관련 레코드를 공유할 것인지 결정합니다. 자세한 내용은 엔터티 관계 동작을 참조하십시오.
공유는 Microsoft Dynamics 365 사용자가 필요할 때 다른 사용자에게 고객 정보에 대한 액세스 권한을 부여하는 방식입니다. 예를 들어, 영업 직원은 중요한 판매의 진행 과정을 추적할 수 있도록 다른 영업 직원과 영업 기회를 공유하기로 결정할 수 있습니다.
GrantAccessRequest를 사용하여 레코드를 공유합니다.ModifyAccessRequest를 사용하여 레코드가 공유되는 방법을 변경합니다.RevokeAccessRequest를 사용하여 레코드에 대한 모든 공유를 제거합니다.
사용자는 연락처, 거래처, 영업 기회, 서비스 케이스 및 주문 같은 고객 관련 레코드를 Microsoft Dynamics 365의 다른 사용자와 공유할 공유 권한이 있어야 합니다. 레코드를 공유하면 공유 레코드에 대해 부여할 수 있는 권한을 지정할 수 있습니다.
다음 목록은 레코드 공유 규칙을 설명합니다:
레코드에 대한 공유 권한이 있는 사용자는 추가 사용자 또는 팀과 이를 공유할 수 있습니다.
레코드에 대한 공유 권한이 있는 사용자는 해당 레코드에 대한 액세스 권한을 설정할 수 있습니다. 이러한 액세스 권한은 레코드를 공유하는 사용자가 해당 레코드에 액세스하는 방법을 제어합니다.
공유 레코드에 대한 액세스는 읽기 또는 쓰기 같은 액세스 권한으로 설정할 수 있습니다.
공유된 레코드에 대한 액세스 권한은 레코드를 공유하는 각 사용자마다 다를 수 있습니다.
레코드는 같은 보안 주체와 한 번만 공유할 수 있습니다. 사용자는 해당 레코드에 대한 공유 권한이 있을 경우 레코드를 공유할 수 있습니다.
비즈니스 레코드에 대한 공유 권한을 가진 사용자는 레코드를 공유하는 사용자에 대한 액세스 권한을 수정할 수 있습니다.
비즈니스 레코드에 대한 공유 권한을 가진 사용자는 레코드를 공유하는 지정된 사용자에 대한 공유를 제거할 수 있습니다.
비즈니스 레코드에 대한 공유 권한을 가진 사용자는 레코드를 이전에 공유한 모든 사용자에 대한 공유를 제거할 수 있습니다.
연결
이 작업을 수행하려면 호출자는 업데이트 중인 레코드에 대한 Associate message privileges 및 액세스 권한이 있어야 합니다.
연결은 지정된 레코드와 지정된 관계에 대해 지정된 모음에 있는 각 레코드 사이의 한 트랜잭션에 여러 연결을 만듭니다.
일대다 관계의 경우 이 메서드는 지정된 레코드의 ID와 관련된 레코드에 ReferencingAttribute를 설정합니다.
다대다 관계의 경우 이 메서드는 참조되는 레코드와 참조하는 레코드의 ID를 모두 포함하는 관계에 대한 교체 테이블에 레코드를 만듭니다. 교차 테이블 이름은 관계에 대한 IntersectEntityName 속성에 정의됩니다.
분리
이 작업을 수행하려면 호출자는 업데이트 중인 레코드에 대한 Disassociate message privileges 및 액세스 권한이 있어야 합니다.
분리는 참조되는 레코드와 참조하는 레코드를 업데이트하고 해당되는 경우 교차 레코드를 삭제하여 연결 작업과 반대로 분리합니다. 자세한 내용은 연결을 참조하십시오.
상태 설정
이 작업을 수행하려면 호출자는 업데이트 중인 레코드에 대한 SetState message privileges 및 액세스 권한이 있어야 합니다.SetStateRequest 메시지는 엔터티 레코드의 StateCode 및 StatusCode 특성을 업데이트합니다.
엔터티 소유권 형태
엔터티 소유권 형태에는 여러 가지 유형이 있습니다. 사용자 지정 엔터티를 포함한 대부분의 엔터티는 조직, 사용자 또는 팀에서 담당합니다. 할인 유형(할인 목록) 같이 담당자가 없는 일부 비즈니스 엔터티가 있으며, 소유권 형태는 상위 엔터티 할인으로 정의됩니다. 소유권 형태의 유형은 레코드에 대해 수행할 수 있는 일부 작업을 정의합니다. 엔터티에 대한 소유권 형태는 메타데이터 속성 OwnershipType에 정의됩니다. 다음 표에는 소유권 형태 속성이 나와 있습니다.
소유권 형태 유형 |
설명 |
---|---|
조직 담당 |
전체 조직에 속하거나 전체 조직에서 볼 수 있는 데이터를 포함합니다. 조직 담당 엔터티는 할당 또는 공유될 수 없습니다. 예를 들어, 제품은 조직에서 담당합니다. 이러한 엔터티에는 이름이 organizationid인 특성이 있습니다. |
업무 담당 |
사업부에 속해 있는 엔터티입니다. 이러한 엔터티에는 이름이 owningbusinessunit인 특성이 있습니다. |
사용자 또는 팀 담당 |
사용자 또는 팀에 할당됩니다. 이러한 엔터티에는 거래처 또는 연락처와 같은 고객 관련 데이터가 포함됩니다. 보안은 사용자 또는 팀의 사업부에 따라 정의할 수 있습니다. 이러한 엔터티에는 이름이 owningteam 및 owninguser인 특성이 있습니다. |
없음 |
이러한 엔터티는 다른 엔터티가 담당하지 않습니다. |
사용자 또는 팀 소유권 형태에 대한 추가 정보
AssignRequest 메시지를 사용하여 레코드의 소유권 형태를 변경할 수 있습니다. 자세한 내용은 할당을 참조하십시오.ReassignObjectsOwnerRequest 또는 ReassignObjectsSystemUserRequest 메시지를 사용하여 담당자의 모든 레코드를 대량 할당할 수 있습니다.
참고
사용자 또는 팀으로 소유권 형태를 제한함으로써 조직의 승인된 사용자에 대해 데이터 액세스를 제한합니다. 그러나 엔터티 레코드를 공유함으로써 추가 사용자 및 팀으로 데이터 액세스를 확장할 수 있습니다. 또한 레코드를 다른 사용자 또는 팀에 할당할 수도 있습니다. 사용자 담당 또는 팀 담당 엔터티에 대한 보안을 구성하면 조직 담당 엔터티보다 보안 역할에 대한 액세스 수준을 더 많이 제공할 수 있습니다. 조직 담당 엔터티에 대한 보안 역할에는 두 가지 액세스 수준(없음 및 전역)이 있습니다. 사용자 담당 또는 팀 담당 엔터티에는 전역, 전체, 로컬, 기본 및 없음 등 다섯 가지 액세스 수준이 있습니다.
레코드 상태(state) 및 상태(status)
대부분의 비즈니스 엔터티는 레코드의 상태(state)를 추적하기 위한 두 개의 속성이 있습니다.StateCode는 웹 응용 프로그램에서 상태(status)라고 하며 StatusCode는 웹 응용 프로그램에서 상태(status) 설명이라고 합니다.StateCode 및 StatusCode 특성 값은 연결되어 있습니다.StateCode 특성은 엔터티의 상태를 나타내기 위해 내부적으로 사용됩니다.StatusCode 특성은 최종 사용자에게 이 값을 표시하는 데 사용됩니다. 엔터티에 대한 유효 상태(state) 코드 집합은 사용자 지정할 수 없지만 상태(status) 코드는 사용자 지정할 수 있습니다. 케이스 엔터티 및 사용자 지정 엔터티의 경우 상타 간에 유효한 전환을 위한 추가 조건을 정의할 수 있습니다. 자세한 내용은 Customize 특성 메타데이터 메시지과 사용자 지정 상태 모델 전환 정의을 참조하십시오.
엔터티 이미지
특정 시스템 엔터티에는 이미지 특성이 있습니다. 이미지 특성을 사용자 지정 엔터티에 추가할 수 있습니다. 엔터티에 이미지 특성이 있으면 PrimaryImageAttribute 속성을 설정하여 응용 프로그램에 이미지를 표시할지 여부를 제어할 수 있습니다. 응용 프로그램에 이미지가 표시되면 웹 응용 프로그램 사용자는 엔터티 레코드에 대한 그림을 업로드할 수 있습니다. 다음 시스템 엔터티에는 이미지 특성이 있습니다. 별표로 표시된 엔터티는 기본적으로 응용 프로그램에 표시하도록 활성화됩니다.
거래처 * |
KbArticle |
캠페인 |
문제 |
경쟁 업체 * |
연결 |
연락처 * |
계약 |
TransactionCurrency |
EmailServerProfile |
목표 |
송장 |
잠재 고객 * |
사서함 |
OpportunityProduct |
SalesOrder |
조직 |
제품 * |
게시자 * |
큐 |
리소스 * |
SalesLiterature |
지역 |
SystemUser * |
추가 정보:이미지 데이터 특성.
참고 항목
관리 및 보안 엔터티
메타데이터를 사용하여 엔터티 다이어그램 생성
사용자 지정 상태 모델 전환 정의
엔터티 다이어그램에 대한 키
비즈니스 데이터 모델
엔터티 관계 메타데이터 사용자 지정
엔터티 관계 동작
Microsoft Dynamics CRM 2015의 메타데이터 및 데이터 모델
메타데이터 모델 확장
솔루션을 사용하여 확장 패키지 및 배포
IOrganizationService 엔터티
Microsoft Dynamics CRM 2015의 보안 모델
샘플: 엔터티 이미지 설정 및 검색
샘플: 팀에 레코드 할당
샘플: GrantAccess, ModifyAccess 및 RevokeAccess 메시지를 사용하여 레코드 공유
샘플: 두 레코드 병합
샘플: 레코드 상태 유효성 검사 및 레코드 상태 설정
샘플: 특정 레코드와 관련된 레코드 롤업
© 2017 Microsoft. All rights reserved. 저작권 정보