다음을 통해 공유


웹 API를 사용하여 엔터티 만들기

 

게시 날짜: 2017년 1월

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

POST 요청을 사용하여 데이터를 보내 엔터티를 만듭니다. ‘깊은 삽입’을 사용하여 단일 작업으로 여러 관련 엔터티를 만들 수 있습니다.@odata.bind 주석을 사용하여 새 엔터티를 기존 엔터티에 연결하기 위해 값을 설정하는 방법도 알고 있어야 합니다.

참고

웹 API를 사용하여 엔터티 메타데이터를 만들고 업데이트하는 방법에 대한 내용은 Web API를 사용하여 엔터티 정의 만들기 및 업데이트를 참조하십시오.

이 항목의 내용

기본 만들기

한 번 작업으로 관련 엔터티를 만듭니다.

만들 때 엔터티 연결

반환된 데이터로 만들기

기본 만들기

이 예제에서는 새 거래처 엔터티를 만듭니다. 응답 OData-EntityId 헤더에는 만든 엔터티의 Uri가 포함되어 있습니다.

  • 요청

    POST cc_WebAPI_ServiceURI/accounts HTTP/1.1
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Accept: application/json
    
    {
        "name": "Sample Account",
        "creditonhold": false,
        "address1_latitude": 47.639583,
        "description": "This is the description of the sample account",
        "revenue": 5000000,
        "accountcategorycode": 1
    }
    
  • 응답

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/accounts(7eb682f1-ca75-e511-80d4-00155d2a68d1)
    

새 엔터티를 만들려면 유효한 속성 이름과 유형을 식별해야 합니다. 모든 시스템 엔터티 및 특성에 대해 Web API EntityType Reference에서 해당 엔터티의 항목에서 이 정보를 찾을 수 있습니다. 사용자 지정 엔터티 또는 특성은 d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_csdl에서 해당 엔터티의 정의를 참조하십시오.추가 정보:d80cfb87-d4f1-4c75-bcc8-4f54d1351e26#bkmk_entityTypes

한 번 작업으로 관련 엔터티를 만듭니다.

탐색 속성 값으로 정의하여 서로 관련이 있는 엔터티를 만들 수 있습니다. 이것을 깊은 삽입이라고 합니다.

기본 만들기와 마찬가지로 응답 OData-EntityId 헤더에는 만든 엔터티의 Uri가 포함되어 있습니다. 만들어진 관련 엔터티의 URI는 반환되지 않습니다.

예를 들어, Account 엔터티 집합에 게시된 다음 요청 본문은 거래처 만들기의 컨텍스트에서 총 4개의 새 엔터티를 만듭니다.

  • 연락처는 단일 값 탐색 속성 primarycontactid의 개체 속성으로 정의되기 때문에 만들어집니다.

  • 영업 기회는 컬렉션 가치 탐색 속성 opportunity_customer_accounts의 값으로 설정되는 배열 내의 개체로 정의되기 때문에 만들어집니다.

  • 작업은 컬렉션 가치 탐색 속성 Opportunity_Tasks의 값으로 설정되는 배열 내의 개체로 정의되기 때문에 만들어집니다.

  • 요청

    POST cc_WebAPI_ServiceURI/accounts HTTP/1.1
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Accept: application/json
    
    {
     "name": "Sample Account",
     "primarycontactid":
     {
         "firstname": "John",
         "lastname": "Smith"
     },
     "opportunity_customer_accounts":
     [
      {
          "name": "Opportunity associated to Sample Account",
          "Opportunity_Tasks":
          [
           { "subject": "Task associated to opportunity" }
          ]
      }
     ]
    }
    
  • 응답

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/accounts(3c6e4b5f-86f6-e411-80dd-00155d2a68cb)
    

만들 때 엔터티 연결

새 엔터티를 만들 때 기존 엔터티에 연결하려면 @odata.bind 주석을 사용하여 단일 가치 탐색 속성의 가치를 설정해야 합니다.

거래처 엔터티 집합에 게시된 다음 요청 본문은 contactid 값이 00000000-0000-0000-0000-000000000001인 기존 연락처와 연관된 새 거래처를 만듭니다.

  • 요청

    POST cc_WebAPI_ServiceURI/accounts HTTP/1.1
    Content-Type: application/json; charset=utf-8
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Accept: application/json
    
    {
    "name":"Sample Account",
    "primarycontactid@odata.bind":"/contacts(00000000-0000-0000-0000-000000000001)"
    }
    
  • 응답

    HTTP/1.1 204 No Content
    OData-Version: 4.0
    OData-EntityId: cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-0000-000000000002)
    

참고

컬렉션 가치 탐색 속성을 사용하여 이런 식으로 엔터티를 연결하는 것은 웹 API에서 지원하지 않습니다.

반환된 데이터로 만들기

참고

이 기능은 Dynamics 365용 2016년 12월 업데이트(온라인 및 온-프레미스)에서 추가되었습니다.

POST 요청을 작성하여 생성된 레코드의 데이터가 201 (Created) 상태로 반환되게 만들 수 있습니다. 이 결과를 얻으려면 요청 헤더에 return=representation 선호 설정을 사용해야 합니다.

반환되는 속성을 제어하기 위해 엔터티 집합에 대한 URL에 $select 쿼리 옵션을 추가합니다.$expand 쿼리 옵션은 사용된 경우 무시됩니다.

이 방식으로 엔터티를 만들 때 만들어진 레코드에 대한 URI를 포함하는 OData-EntityId 헤더는 반환되지 않습니다.

이 예제에서는 거래처 엔터티를 만들고 응답에서 요청된 데이터를 반환합니다.

  • 요청

    POST cc_WebAPI_ServiceURI/accounts?$select=name,creditonhold,address1_latitude,description,revenue,accountcategorycode,createdon HTTP/1.1
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    Accept: application/json
    Content-Type: application/json; charset=utf-8
    Prefer: return=representation
    
    {
        "name": "Sample Account",
        "creditonhold": false,
        "address1_latitude": 47.639583,
        "description": "This is the description of the sample account",
        "revenue": 5000000,
        "accountcategorycode": 1
    }
    
  • 응답

    HTTP/1.1 201 Created
    Content-Type: application/json; odata.metadata=minimal
    Preference-Applied: return=representation
    OData-Version: 4.0
    
    {
        "@odata.context": "cc_WebAPI_ServiceURI/$metadata#accounts/$entity",
        "@odata.etag": "W/\"536530\"",
        "accountid": "d6f193fc-ce85-e611-80d8-00155d2a68de",
        "accountcategorycode": 1,
        "description": "This is the description of the sample account",
        "address1_latitude": 47.63958,
        "creditonhold": false,
        "name": "Sample Account",
        "createdon": "2016-09-28T22:57:53Z",
        "revenue": 5000000.0000,
        "_transactioncurrencyid_value": "048dddaa-6f7f-e611-80d3-00155db5e0b6"
    }
    

참고 항목

웹 API 기본 작업 샘플(C#)
웹 API 기본 작업 샘플(클라이언트 쪽 JavaScript)
웹 API를 사용하여 작업 수행
HTTP 요청 및 처리 오류 작성
웹 API를 사용하여 데이터 쿼리
웹 API를 사용하여 엔터티 검색
웹 API를 사용하여 엔터티 업데이트 및 삭제
웹 API를 사용하여 엔터티 연결 및 연결 해제
웹 API 기능 사용
웹 API 작업 사용
웹 API를 사용하여 일괄 작업 실행
웹 API를 사용하여 다른 사용자를 가장
웹 API를 사용하여 조건부 작업을 수행

Microsoft Dynamics 365

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