엔터티 메타데이터Entity metadata

각 엔터티는 구조적 데이터를 저장하는 기능을 제공합니다.Each entity provides the capability to store structured data. 개발자의 경우 엔터티는 Common Data Servic에서 데이터로 작업할 때 사용할 클래스에 해당합니다.For developers, entities correspond to the classes you will use when working with data in the Common Data Service.

엔터티 이름Entity names

각 엔터티에는 만들어질 때 정의된 고유한 이름이 있습니다.Each entity has a unique name defined when it is created. 이 이름은 다음과 같이 여러 가지 방법으로 표시됩니다.This name is presented in several ways:

이름 속성Name Property 설명Description
SchemaName 일반적으로 파스칼식 대/소문자 버전의 논리적 이름입니다.Typically, a Pascal cased version of the logical name. 예: Accounti.e. Account
CollectionSchemaName 복수 형태의 스키마 이름입니다.A plural form of the Schema name. 예: Accountsi.e. Accounts
LogicalName 모두 소문자 버전의 스키마 이름입니다.All lower-case version of the schema name. 예: accounti.e. account
LogicalCollectionName 모두 소문자 버전의 컬렉션 스키마 이름입니다.All lower-case version of the collection schema name. 예: accountsi.e. accounts
EntitySetName Web API를 사용하여 컬렉션을 식별하는 데 사용됩니다.Used to identify collections with the Web API. 기본적으로 논리적 컬렉션 이름과 동일합니다.By default, it is the same as the logical collection name.
엔터티 집합 이름은 메타데이터를 프로그래밍 방식으로 업데이트하여 변경할 수 있습니다.It is possible to change the Entity Set name by programmatically updating the metadata. 그러나 이 작업은 엔터티에 대한 Web API 코드를 작성하기 전에 수행해야 합니다.But this should only be done before any Web API code is written for the entity. 자세한 정보: Dynamics 365 고객 관계 개발자 가이드: Web API 형식 및 작업 - 엔터티 집합 이름 변경More information: Dynamics 365 Customer Engagement Developer Guide: Web API types and operations > Change the name of an entity set

참고

사용자 지정 엔터티를 만들면 해당 엔터티가 만들어진 솔루션과 연결된 솔루션 게시자의 사용자 지정 접두사 값이 선택한 이름 앞에 추가됩니다.When you create a custom entity, the name you choose will be prepended with the customization prefix value of the solution publisher associated with the solution that the entity was created within. 엔터티를 만든 후에는 엔터티 집합 이름이 아닌 엔터티 이름은 변경할 수 없습니다.Other than the entity set name, you cannot change the names of an entity after it is created. 솔루션의 메타데이터 항목에 대해 일관된 이름을 사용하려면, 사용할 사용자 지정 접두사가 포함된 솔루션 게시자와 연결하여 만든 솔루션의 컨텍스트에서 해당 항목을 만들어야 합니다.If you want consistent names for metadata items in your solution, you should create them in the context of a solution you create associated with a solution publisher that contains the customization prefix you want to use. 자세한 정보: 솔루션 게시자 및 솔루션 만들기More information : Create a solution publisher and solution

또한 각 엔터티에는 지역화된 값을 표시할 수 있는 세 가지 속성이 있습니다.Each entity also has three properties that can display localized values:

이름Name 설명Description
DisplayName 일반적으로 스키마 이름과 동일하지만 공백을 포함할 수 있습니다.Typically, the same as the schema name, but can include spaces. 예: Accounti.e. Account
DisplayCollectionName 복수 형태의 표시 이름입니다.A plural form of the Display name. 예: Accountsi.e. Accounts
Description 엔터티를 설명하는 짧은 문장입니다. 즉 고객 또는 잠재 고객을 나타내는 비즈니스입니다. 비즈니스 거래에서 청구되는 회사입니다.A short sentence describing the entity i.e. Business that represents a customer or potential customer. The company that is billed in business transactions.

이러한 값은 앱의 엔터티를 참조하는 데 사용되는 지역화할 수 있는 값입니다.These are the localizable values that are used to refer to the entities in an app. 이러한 값은 언제든지 변경할 수 있습니다.These values can be changed at any time. 지역화된 값을 추가하거나 편집하려면 Dynamics 365 사용자 지정 가이드: 사용자 지정된 엔터티 및 필드 텍스트를 다른 언어로 번역을 참조하세요.To add or edit localized values see Dynamics 365 Customization Guide: Translate customized entity and field text into other languages.

기본 키Primary key

PrimaryIdAttribute 속성 값은 엔터티에 대한 기본 키인 특성의 논리적 이름입니다.The PrimaryIdAttribute property value is the logical name of the attribute that is the primary key for the entity.

기본적으로 모든 엔터티에는 단일 GUID 고유 식별자 특성이 있습니다.By default, all entities have a single GUID unique identifier attribute. 대개 < 엔터티 논리 이름 >+ Id로 지정됩니다.This is usually named < entity logical name >+ Id.

기본 이름Primary name

PrimaryNameAttribute 속성 값은 엔터티 레코드를 식별하는 문자열 값을 저장하는 특성의 논리적 이름입니다.The PrimaryNameAttribute property value is the logical name of the attribute that stores the string value that identifies the entity record. UI에서 레코드를 여는 링크에 표시되는 값입니다.This is the value that will be displayed in a link to open the record in a UI.

: fullname 특성은 Contact(연락처) 엔터티에서 기본 이름 특성으로 사용합니다.Example: The Contact entity uses the fullname attribute as the primary name attribute.

참고

모든 엔터티에 기본 이름이 있는 것은 아닙니다.Not every entity will have a primary name. 일부 엔터티는 UI에 표시되지 않습니다.Some entities are not intended to be displayed in a UI.

엔터티 이미지Entity images

PrimaryImageAttribute 속성 값은 엔터티 레코드에 대한 이미지 데이터를 저장하는 특성의 논리적 이름입니다.The PrimaryImageAttribute property value is the logical name of the attribute that stores the image data for the entity record. 각 엔터티에는 하나의 이미지 특성만 있을 수 있으며, 해당 특성의 논리적 이름은 항상 entityimage입니다.Each entity can have only one image attribute and the logical name of that attribute is always entityimage.

: ContactEntity EntityImage 특성은 연락처의 그림을 저장할 수 있습니다.Example: The Contact Entity EntityImage attribute can store a picture of the contact.

성능상의 이유로 명시적으로 요청하지 않는 한 엔터티 이미지는 검색 작업에 포함되지 않습니다.For performance reasons, entity images are not included in retrieve operations unless explicitly requested.

엔터티 이미지를 지원하는 각 엔터티에는 세 가지 지원 특성이 있습니다.Each entity that supports entity images will have three supporting attributes.

SchemaNameSchemaName 유형Type 설명Description
EntityImage_Timestamp BigIntType 이미지가 마지막으로 업데이트된 시점을 나타내며, 최신 버전의 이미지가 다운로드되어 클라이언트에 캐시되도록 하는 데 사용됩니다.The value represents when the image was last updated and is used to help make sure that the latest version of the image is downloaded and cached on the client.
EntityImage_URL StringType 클라이언트에 엔터티 이미지를 표시하는 절대 URL입니다.An absolute URL to display the entity image in a client.
EntityImageId UniqueIdentifierType 이미지의 고유 식별자입니다.The unique identifier of the image

자세한 정보:More information:

참고

이는 모델 기반 앱에서 엔터티에 대해 표시되는 아이콘과 다릅니다.This is different from the icon displayed for an entity in model-driven apps. IconVectorName 속성은 이를 설정하는 SVG 웹 리소스의 이름을 포함합니다.The IconVectorName property contains the name of the SVG web resource that sets this.

엔터티 형식Types of entities

엔터티의 기능 및 동작은 여러 엔터티 속성에 따라 달라집니다.The capabilities and behavior of entities depends on several entity properties. 이러한 속성 대부분은 비교적 간단하며 설명이 포함된 이름을 사용합니다.Most of these properties are relatively simple and have descriptive names. 추가 설명이 필요한 네 가지 속성은 소유권, 활동 엔터티, Activityparty 엔터티자식 엔터티입니다.Four that require some additional explanation are: Ownership, Activity entities, Activityparty entity and Child entities.

엔터티 소유권Entity ownership

엔터티는 포함된 데이터를 소유하는 방식에 따라 분류할 수 있습니다.Entities can be categorized by how the data within them is owned. 이는 보안이 엔터티에 적용되는 방법과 관련된 중요한 개념입니다.This is an important concept related to how security is applied to entities. 이 정보는 OwnershipType 속성에 있습니다.This information is in the OwnershipType property. 다음 표에서는 여러 가지 소유권 유형을 설명합니다.The following table describes the different ownership types:

소유권 유형Ownership Type 설명Description
BusinessBusiness 비즈니스 단위에 속한 데이터입니다.Data belongs to the Business unit. 데이터에 대한 액세스는 비즈니스 단위 수준에서 제어할 수 있습니다.Access to the data can be controlled at the business unit level.
없음None 다른 엔터티에서 소유하지 않은 데이터입니다.Data not owned by another entity.
조직Organization 조직에 속한 데이터입니다.Data belongs to the organization. 데이터에 대한 액세스는 조직 수준에서 제어됩니다.Access to the data is controlled at the organization level.
사용자 또는 팀User or Team 사용자 또는 팀에 속한 데이터입니다.Data belongs to a user or a team. 이러한 레코드에서 수행할 수 있는 작업은 사용자 수준에서 제어할 수 있습니다.Actions that can be performed on these records can be controlled on a user level.

새 엔터티를 만들 때는 조직 또는 사용자 또는 팀 소유권 옵션만 사용할 수 있습니다.When you create new entities, the only ownership options are: Organization or User or Team. 이 옵션을 선택하면 변경할 수 없습니다.Once you make a choice for this option, you cannot change it. 레코드에 대한 작업을 보거나 수행할 수 있는 사용자를 가장 세밀하게 제어하려면 사용자 또는 팀을 선택합니다.Choose User or Team for the most granular control over who can view or perform actions on the records. 이 수준의 제어가 필요하지 않은 경우 조직을 선택합니다.Choose Organization when this level of control is not necessary.

활동 엔터티Activity entities

활동은 사용자가 수행하거나 수행할 작업입니다.An activity is a task performed, or to be performed, by a user. 활동은 일정에 항목을 만들 수 있는 모든 작업입니다.An activity is any action for which an entry can be made on a calendar.

활동은 비즈니스 데이터를 저장하는 다른 종류의 엔터티와 다르게 모델링됩니다.Activities are modeled differently from other kinds of entities that store business data. 활동에 대한 데이터는 자주 목록에 함께 표시되지만 각 종류의 활동에는 고유한 속성이 필요합니다.Data about activities is frequently displayed together in a list, yet each kind of activity requires unique properties. 가능한 모든 속성이 포함된 단일 활동 엔터티가 아니라 개별 종류의 활동 엔터티가 있으며, 각 엔터티는 기본 ActivityPointer 엔터티에서 속성을 상속합니다.Rather than have a single Activity entity with every possible property, there are separate kinds of activity entities and each of them inherits properties from a base ActivityPointer Entity. 이러한 엔터티에는 IsActivity 속성이 true로 설정됩니다.These entities will have the IsActivity property set to true.

엔터티Entity 설명Description
AppointmentAppointment 시작/종료 시간 및 시간으로 시간 간격을 나타내는 약속입니다.Commitment representing a time interval with start/end times and duration.
EmailEmail 이메일 프로토콜을 사용하여 전달되는 활동입니다.Activity that is delivered using email protocols.
FaxFax 팩스에 대한 통화 결과 및 페이지 수를 추적하고 필요에 따라 문서의 전자 복사본을 저장하는 활동입니다.Activity that tracks call outcome and number of pages for a fax and optionally stores an electronic copy of the document.
LetterLetter 편지 전달을 추적하는 활동입니다.Activity that tracks the delivery of a letter. 이 활동은 편지의 전자 복사본을 포함할 수 있습니다.The activity can contain the electronic copy of the letter.
PhoneCallPhoneCall 전화 통화를 추적하는 활동입니다.Activity to track a telephone call.
RecurringAppointmentMasterRecurringAppointmentMaster 되풀이 약속 시리즈의 마스터 약속입니다.The Master appointment of a recurring appointment series.
SocialActivitySocialActivity 내부 전용입니다.For internal use only.
TaskTask 수행해야 할 작업을 나타내는 일반적인 활동입니다.Generic activity representing work needed to be done.

이러한 종류의 활동 엔터티 레코드 중 하나를 만들 때마다 동일한 ActivityId 고유 식별자 특성 값을 사용하여 해당 ActivityPointer 엔터티 레코드가 만들어집니다.Whenever anyone creates one of these kinds of activity entity records, a corresponding ActivityPointer entity record will be created with the same ActivityId unique identifier attribute value. ActivityPointer 엔터티의 인스턴스를 생성, 업데이트 또는 삭제할 수 없지만 검색할 수는 있습니다.You cannot create, update, or delete instances of the ActivityPointer entity, but you can retrieve them. 이렇게 하면 모든 유형의 활동을 목록에 함께 표시할 수 있습니다.This is what allows all types of activities to be presented together in a list.

동일한 방식으로 작동하는 사용자 지정 활동 엔터티를 만들 수 있습니다.You can create custom activity entities that behave the same way.

ActivityParty 엔터티ActivityParty entity

이 엔터티는 다른 엔터티에 대한 참조를 포함하는 활동 엔터티 PartyListType 특성에 구조를 추가하는 데 사용됩니다.This entity is used to add structure to activity entity PartyListType attributes that include references to other entities. Email.to 또는 PhoneCall.from과 같은 활동 엔터티 특성 값을 설정할 때 이 엔터티를 사용합니다.You will use this entity when setting values for activity entity attributes like Email.to or PhoneCall.from. ActivityParty 엔터티 내에서 ParticipationTypeMask 특성을 설정하여 참조에서 재생하는 역할을 정의합니다.Within the ActivityParty entity, you set the ParticipationTypeMask attribute to define the role that the reference is playing. 역할에는 Sender, ToRecipient, Organizer 등이 포함됩니다.Roles include Sender, ToRecipient, Organizer and more.

ActivityParty 엔터티를 쿼리할 수 있지만, 관련된 활동 외부의 활동 당사자를 생성, 검색, 업데이트 또는 삭제할 수는 없습니다.You can query the ActivityParty entity, but you cannot create, retrieve, update, or delete an activity party outside of the activity that it is related to. 자세한 정보:More information:

자식 엔터티Child entities

IsChildEntity 속성이 true인 엔터티는 정의된 권한을 포함할 수 없으며 사용자 또는 팀에서 소유하지 않습니다.Entities where the IsChildEntity property is true will never have any privileges defined and will never be User or Team owned. 자식 엔터티에 대해 수행할 수 있는 작업은 다대일 관계를 통해 연결된 엔터티에 바인딩됩니다.Operations that can be performed on a child entity are bound to an entity that they are associated to via a Many-to-one relationship. 사용자는 관련 엔터티에 대해 동일한 작업을 수행할 수 있는 경우에만 자식 엔터티에 대한 작업을 수행할 수 있습니다.Users can only perform operations on child entities if they can perform the same operation on the related entity. 종속된 엔터티 레코드가 삭제되면 자식 엔터티가 자동으로 삭제됩니다.Child entities get deleted automatically when the entity record they depend on is deleted.

예를 들어 PostComment, PostLikePostRole은 각각 Post 엔터티의 자식 엔터티입니다.For example, PostComment, PostLike, and PostRole are each children of the Post entity.

엔터티 키Entity keys

각 대체 키 정의는 엔터티 인스턴스를 고유하게 식별하는 하나 이상의 특성을 조합하여 설명합니다.Each alternate key definition describes one or more attributes in combination that will uniquely identify an entity instance. 대체 키는 일반적으로 외부 시스템과의 통합에만 적용됩니다.Alternate keys are typically only applied for integration with external systems. 대체 키를 정의하여 레코드를 고유하게 식별할 수 있습니다.You can define alternate keys to uniquely identify a record. GUID 고유 식별자 키를 지원하지 않는 시스템과 데이터를 통합하는 경우에 유용합니다.This is valuable if you are integrating data with a system that doesn’t support GUID unique identifier keys. 엔터티를 고유하게 식별하기 위해 단일 필드 값 또는 필드 값 조합을 정의할 수 있습니다.You can define a single field value or combination of field values to uniquely identify an entity. 대체 키를 추가하면 이러한 특성에 고유성 제약 조건이 적용됩니다.Adding an alternate key will enforce a uniqueness constraint on these attributes. 동일한 값을 사용하도록 다른 엔터티 레코드를 만들거나 업데이트할 수 없습니다.You will not be able to create or update another entity record to have the same values.

자세한 정보:More information:

엔터티 상태Entity states

대부분의 엔터티에는 레코드 상태를 추적하는 두 가지 속성이 있습니다.Most entities have two properties to track the state of a record. 모델 기반 앱에서 상태라고 하는 StateCode상태 설명이라고 하는 StatusCode입니다.These are StateCode, which is called Status in model-driven apps and StatusCode, which is called Status Reason in model-driven apps.

두 특성은 모두 유효한 값을 표시하는 옵션 집합을 포함합니다.Both attributes contain a set of options that display the valid values. 특정 StatusCode 옵션만 지정된 StateCode에 대해 유효하도록 StateCodeStatusCode 특성 값이 연결됩니다.The StateCode and StatusCode attribute values are linked so that only certain StatusCode options are valid for a given StateCode.

이는 엔터티에 따라 다를 수 있지만 대부분의 엔터티에서 일반적인 패턴이며, 사용자 지정 엔터티에 대한 기본값은 다음과 같습니다.This can vary by entity but the common pattern for many entities, and the default for custom entities is this:

StateCode 옵션StateCode Options StatusCode 옵션StatusCode Options
0: 활성0 : Active 1: 활성1 : Active
1: 비활성1: Inactive 2: 비활성2: Inactive

일부 엔터티에는 다른 옵션 집합이 있습니다.Some entities will have different sets of options.

: PhoneCall 엔터티, StateCodeStatusCode 옵션Example: PhoneCall entity StateCode and StatusCode options

Column1Column1 Column2Column2
0: 시작됨0 : Open 1: 시작됨1: Open
1: 완료됨1 : Completed 2: 수행함2: Made
4: 받음4: Received
2: 취소됨2: Cancelled 3: 취소됨3: Cancelled

엔터티에 대한 유효한 상태 코드 집합은 사용자 지정할 수 없지만, 상태 코드는 사용자 지정할 수 있습니다.The set of valid state codes for an entity is not customizable, but the status codes are customizable. 해당 StateCode에 대해 StatusCode 추가 옵션을 추가할 수 있습니다.You can add additional StatusCode options for a corresponding StateCode.

사용자 지정 엔터티의 경우 유효한 상태 간 전환에 대한 추가 조건을 정의할 수 있습니다.For custom entities, you can define additional criteria for valid transitions between statuses. 자세한 정보:More information:

참고 항목See also

Common Data Service for Apps 엔터티Common Data Service for Apps entities