다음을 통해 공유


Web API를 사용하여 엔터티 관계 만들기 및 업데이트

 

게시 날짜: 2017년 1월

적용 대상: Dynamics 365 (online), Dynamics 365 (on-premises), Dynamics CRM 2016, Dynamics CRM Online

웹 API는 관계 메타데이터를 사용을 지원합니다.엔터티 관계 메타데이터 사용자 지정에 설명된 개념은 웹 API에도 적용됩니다.

이 항목의 내용

관계 자격

일대다 관계 만들기

다대다 관계 만들기

관계 업데이트

관계 삭제

관계 자격

엔터티 관계를 만들기 전에 엔터티를 관계에 참여시킬 수 있는지 여부를 확인해야 합니다. 자격을 확인하려면 다음 표에 나열된 작업을 사용할 수 있습니다. 이러한 작업은 엔터티 관계 자격 규정에 설명된 조직 서비스 메시지와 호응됩니다.

작업

설명

CanBeReferenced Action

지정된 엔터티가 일대다 관계에서 기본 엔터티(1)가 될 수 있는지 여부를 확인합니다.

CanBeReferencing Action

지정된 엔터티가 일대다 관계에서 참조하는 엔터티(다)가 될 수 있는지 여부를 확인합니다.

CanManyToMany Action

엔터티가 다대다 관계에 참여할 수 있는지 여부를 확인합니다.

GetValidManyToMany Function

다대다 관계에 참여할 수 있는 엔터티 집합을 반환합니다.

GetValidReferencedEntities Function

일대다 관계에서 지정된 엔터티에서 기본 엔터티(1)로 유효한 엔터티 집합을 반환합니다.

GetValidReferencingEntities Function

일대다 관계에서 지정된 엔터티에 관련 엔터티(다)로 유효한 엔터티 집합을 반환합니다.

일대다 관계 만들기

일대다 관계를 만들 때 OneToManyRelationshipMetadata EntityType을 사용하여 이를 정의합니다. 이 정의는 LookupAttributeMetadata EntityType을 사용하여 정의된 조회 특성을 포함하며, AssociatedMenuConfiguration ComplexType, CascadeConfiguration ComplexType, Label ComplexTypeLocalizedLabel ComplexType을 사용하는 복합 속성이 필요합니다. 조회 특성은 OneToManyRelationshipMetadata 개체의 Lookup 단일 값 탐색 속성으로 설정되며 깊은 삽입을 사용하여 동시에 생성됩니다.추가 정보:한 번 작업으로 관련 엔터티를 만듭니다.일대다 관계

일대다 관계에 대해 사용자 지정 탐색 속성 이름을 적용하려는 경우 ReferencingEntityNavigationPropertyNameReferencedEntityNavigationPropertyName 속성에 대한 값을 설정할 수 있습니다.

관계 및 조회 특성을 정의하기 위해 필요한 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 ComplexTypeLocalizedLabel ComplexType을 사용하여 응용 프로그램에 표시될 관계를 포함합니다.추가 정보:다대다 관계

다대다 관계에 대해 사용자 지정 탐색 속성 이름을 적용하려는 경우 Entity1NavigationPropertyNameEntity2NavigationPropertyName 속성에 대한 값을 설정할 수 있습니다.

관계를 정의하기 위해 필요한 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. 저작권 정보