Web API를 사용하여 엔터티 관계 만들기 및 업데이트
게시 날짜: 2017년 1월
적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online
웹 API는 관계 메타데이터를 사용을 지원합니다.엔터티 관계 메타데이터 사용자 지정에 설명된 개념은 웹 API에도 적용됩니다.
이 항목의 내용
관계 자격
일대다 관계 만들기
다대다 관계 만들기
관계 업데이트
관계 삭제
관계 자격
엔터티 관계를 만들기 전에 엔터티를 관계에 참여시킬 수 있는지 여부를 확인해야 합니다. 자격을 확인하려면 다음 표에 나열된 작업을 사용할 수 있습니다. 이러한 작업은 엔터티 관계 자격 규정에 설명된 조직 서비스 메시지와 호응됩니다.
작업 |
설명 |
---|---|
지정된 엔터티가 일대다 관계에서 기본 엔터티(1)가 될 수 있는지 여부를 확인합니다. |
|
지정된 엔터티가 일대다 관계에서 참조하는 엔터티(다)가 될 수 있는지 여부를 확인합니다. |
|
엔터티가 다대다 관계에 참여할 수 있는지 여부를 확인합니다. |
|
다대다 관계에 참여할 수 있는 엔터티 집합을 반환합니다. |
|
일대다 관계에서 지정된 엔터티에서 기본 엔터티(1)로 유효한 엔터티 집합을 반환합니다. |
|
일대다 관계에서 지정된 엔터티에 관련 엔터티(다)로 유효한 엔터티 집합을 반환합니다. |
일대다 관계 만들기
일대다 관계를 만들 때 OneToManyRelationshipMetadata EntityType을 사용하여 이를 정의합니다. 이 정의는 LookupAttributeMetadata EntityType을 사용하여 정의된 조회 특성을 포함하며, AssociatedMenuConfiguration ComplexType, CascadeConfiguration ComplexType, Label ComplexType 및 LocalizedLabel ComplexType을 사용하는 복합 속성이 필요합니다. 조회 특성은 OneToManyRelationshipMetadata 개체의 Lookup 단일 값 탐색 속성으로 설정되며 깊은 삽입을 사용하여 동시에 생성됩니다.추가 정보:한 번 작업으로 관련 엔터티를 만듭니다. 및 일대다 관계
일대다 관계에 대해 사용자 지정 탐색 속성 이름을 적용하려는 경우 ReferencingEntityNavigationPropertyName 및 ReferencedEntityNavigationPropertyName 속성에 대한 값을 설정할 수 있습니다.
관계 및 조회 특성을 정의하기 위해 필요한 JSON을 생성한 후 JSON을 RelationshipDefinitions 엔터티 집합에 POST합니다. 다대다 관계를 만들기 위해 엔터티 집합이 사용되기 때문에, 만들고자 하는 관계의 유형을 명확하게 하기 위해 Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata의 @odata.type 특성 값을 포함해야 합니다. 결과 관계에 대한 URI는 응답으로 반환됩니다.
요청
POST cc_WebAPI_ServiceURI/RelationshipDefinitions HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 { "SchemaName": "new_contact_new_bankaccount", "@odata.type": "Microsoft.Dynamics.CRM.OneToManyRelationshipMetadata", "AssociatedMenuConfiguration": { "Behavior": "UseCollectionName", "Group": "Details", "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Accounts", "LanguageCode": 1033 } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Bank Accounts", "LanguageCode": 1033 } }, "Order": 10000 }, "CascadeConfiguration": { "Assign": "Cascade", "Delete": "Cascade", "Merge": "Cascade", "Reparent": "Cascade", "Share": "Cascade", "Unshare": "Cascade" }, "ReferencedAttribute": "contactid", "ReferencedEntity": "contact", "ReferencingEntity": "new_bankaccount", "Lookup": { "AttributeType": "Lookup", "AttributeTypeName": { "Value": "LookupType" }, "Description": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "The owner of the account", "LanguageCode": 1033 } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "The owner of the account", "LanguageCode": 1033 } }, "DisplayName": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Account Owner", "LanguageCode": 1033 } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Account Owner", "LanguageCode": 1033 } }, "RequiredLevel": { "Value": "ApplicationRequired", "CanBeChanged": true, "ManagedPropertyLogicalName": "canmodifyrequirementlevelsettings" }, "SchemaName": "new_AccountOwner", "@odata.type": "Microsoft.Dynamics.CRM.LookupAttributeMetadata" } }
응답
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/RelationshipDefinitions(d475020f-5d7c-e511-80d2-00155d2a68d2)
다대다 관계 만들기
다대다 관계를 만들 때 ManyToManyRelationshipMetadata EntityType을 사용하여 관계를 정의해야 합니다. 이 정의는 만들 교차 엔터티의 이름뿐만 아니라 AssociatedMenuConfiguration ComplexType, Label ComplexType 및 LocalizedLabel ComplexType을 사용하여 응용 프로그램에 표시될 관계를 포함합니다.추가 정보:다대다 관계
다대다 관계에 대해 사용자 지정 탐색 속성 이름을 적용하려는 경우 Entity1NavigationPropertyName 및 Entity2NavigationPropertyName 속성에 대한 값을 설정할 수 있습니다.
관계를 정의하기 위해 필요한 JSON을 생성한 후 JSON을 RelationshipDefinitions 엔터티 집합에 POST합니다. 일대다 관계를 만들기 위해 엔터티 집합이 사용되기 때문에, 만들고자 하는 관계의 유형을 명확하게 하기 위해 Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata의 @odata.type 특성 값을 포함해야 합니다. 결과 관계에 대한 URI는 응답으로 반환됩니다.
요청
POST cc_WebAPI_ServiceURI/RelationshipDefinitions HTTP/1.1 Accept: application/json Content-Type: application/json; charset=utf-8 OData-MaxVersion: 4.0 OData-Version: 4.0 { "SchemaName": "new_accounts_campaigns", "@odata.type": "Microsoft.Dynamics.CRM.ManyToManyRelationshipMetadata", "Entity1AssociatedMenuConfiguration": { "Behavior": "UseLabel", "Group": "Details", "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Account", "LanguageCode": 1033 } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Account", "LanguageCode": 1033 } }, "Order": 10000 }, "Entity1LogicalName": "account", "Entity2AssociatedMenuConfiguration": { "Behavior": "UseLabel", "Group": "Details", "Label": { "@odata.type": "Microsoft.Dynamics.CRM.Label", "LocalizedLabels": [ { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Campaign", "LanguageCode": 1033 } ], "UserLocalizedLabel": { "@odata.type": "Microsoft.Dynamics.CRM.LocalizedLabel", "Label": "Campaign", "LanguageCode": 1033 } }, "Order": 10000 }, "Entity2LogicalName": "campaign", "IntersectEntityName": "new_accounts_campaigns" }
응답
HTTP/1.1 204 No Content OData-Version: 4.0 OData-EntityId: cc_WebAPI_ServiceURI/RelationshipDefinitions(420245fa-c77c-e511-80d2-00155d2a68d2)
관계 업데이트
업데이트 엔터티에서 설명한 것처럼 HTTP PUT 메서드를 사용하여 관계를 업데이트하면 기존 정의를 적용하려는 변경 내용으로 교체할 수 있습니다. 비즈니스 데이터 엔터티와 달리 HTTP PATCH 메서드를 사용하여 개별 속성을 편집할 수 없습니다. 엔터티 및 특성과 같이, 업데이트에 포함되지 않는 지역화된 레이블을 덮어쓰지 않도록 값이 true로 설정된 MSCRM.MergeLabels 헤더를 포함해야 하며 시스템에 사용자 지정에 활성화되기 전에 게시해야 합니다.
관계 삭제
웹 API를 사용하여 관계를 삭제하려면 관계에 대한 URI로 HTTP DELETE를 사용합니다.
참고 항목
엔터티 관계 메타데이터 사용자 지정
웹 API를 Dynamics 365 메타데이터와 함께 사용
웹 API를 사용하는 메타데이터 쿼리
이름 또는 MetadataId로 메타데이터 검색
Web API를 사용하여 엔터티 정의 만들기 및 업데이트
Microsoft Dynamics 365
© 2017 Microsoft. All rights reserved. 저작권 정보