웹 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. 저작권 정보