다음을 통해 공유


웹 API를 사용하여 일괄 작업 실행

 

게시 날짜: 2017년 1월

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

일괄 작업을 사용하여 여러 작업을 단일 HTTP 요청으로 그룹화할 수 있습니다.

이 항목의 내용

일괄 처리 요청을 사용하는 경우

일괄 처리 요청

변경 집합

예제

일괄 처리 요청을 사용하는 경우

일괄 처리 요청을 제공하는 값은 다양한 작업에 대해 성공 또는 실패 그룹으로 묶는 방법을 제공하는 변경 세트를 포함할 수 있습니다. 웹 API를 사용하여 수행될 수 있는 다른 작업과 비교되는 거래에서, 요청 본문은 기본적으로 매우 구체적인 요구 사항과 일치해야 하는 텍스트 문서이기 때문에 개체의 직렬화 또는 HTTP 프로토콜에 대한 심도 깊은 이해를 담고 있는 개체 모델 없이 작성하기가 더욱 어렵습니다.

관련 엔터티는 일괄 요청을 사용하는 것보다 단일 작업으로 보다 쉽게 만들 수 있습니다. 일괄 처리 요청은 트랜잭션을 한 번에 모든 작업을 수행 해야 하는 경우 서로 연결되지 않은 엔터티에 대한 작업을 수행하는 경우에 가장 적합합니다.

또한 반환되는 응답은 JSON로 쉽게 구문 분석할 수 있는 개체 보다는 기본적으로 텍스트 문서입니다. 응답에서 텍스트를 구문 분석하거나 응답의 데이터를 액세스하는 도우미 라이브러리를 찾아야 합니다.

일괄 처리 요청

POST 요청을 사용하여 여러 개의 요청을 포함하는 일괄 작업을 제출합니다. 일괄 처리 요청은 GET 요청과 변경 집합을 포함할 수 있습니다. 일괄 처리 요청의 트랜잭션 기능을 사용하려면 데이터를 변경하는 작업만 변경 집합에 포함해야 합니다.GET 요청은 변경 집합에 포함되지 않습니다.

POST 요청은 일괄 처리를 포함하는 패턴을 사용하여 일괄 처리의 식별자를 포함하도록 설정하는 경계를 사용하여 다중 파트/혼합을 설정하는 값을 사용하는 콘텐츠 형식 헤더가 있어야 합니다.

--batch_<unique identifier>

고유 식별자 GUID는 필요하지 않지만 고유해야 합니다. 일괄 처리 내의 각 항목은 다음과 같이 Content-Type 및 Content-Transfer-Encoding 헤더가 있는 일괄 처리 식별자가 앞에 나와야 합니다.

--batch_WKQS9Yui9r
Content-Type: application/http
Content-Transfer-Encoding:binary

일괄 처리의 끝에는 다음과 같은 종료 표시기가 포함되어야 합니다.

--batch_WKQS9Yui9r--

참고

odata.continue-on-error 기본 설정은 웹 API에서 지원하지 않습니다. 일괄 처리에서 발생하는 오류는 일괄 처리의 나머지 부분을 처리하지 않습니다.

변경 집합

변경에 작업이 여러 개 포함된 경우, 모든 설정 작업은 원자로 간주됩니다. 즉 작업 중 하나라도 실패하면 완료된 모든 작업이 롤백됩니다. 일괄 처리 요청과 마찬가지로 변경 집합은 일괄 처리를 포함하는 패턴을 사용하여 일괄 처리의 식별자를 포함하도록 설정하는 경계를 사용하여 다중 파트/혼합을 설정하는 값을 사용하는 콘텐츠 형식 헤더가 있어야 합니다.

--changeset_<unique identifier>

고유 식별자 GUID는 필요하지 않지만 고유해야 합니다. 변경 집합 내의 각 항목은 다음과 같이 Content-Type 및 Content-Transfer-Encoding 헤더가 있는 변경 집합 식별자가 앞에 나와야 합니다.

--changeset_BBB456
Content-Type: application/http
Content-Transfer-Encoding:binary

변경 집합은 고유한 값이 있는 Content-ID 헤더를 포함할 수도 있습니다.$이 접두사로 사용하는 경우 이 값은 해당 작업에서 만든 엔터티의 Uri를 포함하는 변수를 나타냅니다. 예를 들어, 1의 값을 설정할 때 변경 집합에서 $1 이상을 사용하여 해당 엔터티를 참조할 수 있습니다.

변경 집합의 끝에는 다음과 같은 종료 표시기가 포함되어야 합니다.

--changeset_BBB456--

예제

다음 예제는 AAA123의 고유 식별자가 있는 일괄 처리 및 BBB456의 고유 식별자가 있는 변경 집합을 포함합니다.

변경 집합 내에서 POST를 사용하여 두 작업이 만들어지고 accountid = 00000000-0000-0000-000000000001인 기존 계정에 연결됩니다.

마지막으로 GET 요청은 외부 일괄 요청으로 만든 두 가지를 포함하여, 계정에 연결된 6개의 작업만 반환하도록 설정 변경 요청이 포함됩니다.

  • 요청

    POST cc_WebAPI_ServiceURI/$batch HTTP/1.1
    Content-Type: multipart/mixed;boundary=batch_AAA123
    Accept: application/json
    OData-MaxVersion: 4.0
    OData-Version: 4.0
    
    --batch_AAA123
    Content-Type: multipart/mixed;boundary=changeset_BBB456
    
    --changeset_BBB456
    Content-Type: application/http
    Content-Transfer-Encoding:binary
    Content-ID: 1
    
    POST cc_WebAPI_ServiceURI/tasks HTTP/1.1
    Content-Type: application/json;type=entry
    
    {"subject":"Task 1 in batch","regardingobjectid_account_task@odata.bind":"cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-000000000001)"}
    --changeset_BBB456
    Content-Type: application/http
    Content-Transfer-Encoding:binary
    Content-ID: 2
    
    POST cc_WebAPI_ServiceURI/tasks HTTP/1.1
    Content-Type: application/json;type=entry
    
    {"subject":"Task 2 in batch","regardingobjectid_account_task@odata.bind":"cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-000000000001)"}
    --changeset_BBB456--
    
    --batch_AAA123
    Content-Type: application/http
    Content-Transfer-Encoding:binary
    
    GET cc_WebAPI_ServiceURI/accounts(00000000-0000-0000-000000000001)/Account_Tasks?$select=subject HTTP/1.1
    Accept: application/json
    
    --batch_AAA123--
    
  • 응답

    --batchresponse_c1bd45c1-dd81-470d-b897-e965846aad2f
    Content-Type: multipart/mixed; boundary=changesetresponse_ff83b4f1-ab48-430c-b81c-926a2c596abc
    
    --changesetresponse_ff83b4f1-ab48-430c-b81c-926a2c596abc
    Content-Type: application/http
    Content-Transfer-Encoding: binary
    Content-ID: 1
    
    HTTP/1.1 204 No Content
    OData-Version: 4.0
    Location: cc_WebAPI_ServiceURI/tasks(a59c24f3-fafc-e411-80dd-00155d2a68cb)
    OData-EntityId: cc_WebAPI_ServiceURI/tasks(a59c24f3-fafc-e411-80dd-00155d2a68cb)
    
    
    --changesetresponse_ff83b4f1-ab48-430c-b81c-926a2c596abc
    Content-Type: application/http
    Content-Transfer-Encoding: binary
    Content-ID: 2
    
    HTTP/1.1 204 No Content
    OData-Version: 4.0
    Location: cc_WebAPI_ServiceURI/tasks(a69c24f3-fafc-e411-80dd-00155d2a68cb)
    OData-EntityId: cc_WebAPI_ServiceURI/tasks(a69c24f3-fafc-e411-80dd-00155d2a68cb)
    
    
    --changesetresponse_ff83b4f1-ab48-430c-b81c-926a2c596abc--
    --batchresponse_c1bd45c1-dd81-470d-b897-e965846aad2f
    Content-Type: application/http
    Content-Transfer-Encoding: binary
    
    HTTP/1.1 200 OK
    Content-Type: application/json; odata.metadata=minimal
    OData-Version: 4.0
    
    {
      "@odata.context":"cc_WebAPI_ServiceURI/$metadata#tasks(subject)","value":[
        {
          "@odata.etag":"W/\"474122\"","subject":"Task Created with Test Account","activityid":"919c24f3-fafc-e411-80dd-00155d2a68cb"
        },{
          "@odata.etag":"W/\"474125\"","subject":"Task 1","activityid":"a29c24f3-fafc-e411-80dd-00155d2a68cb"
        },{
          "@odata.etag":"W/\"474128\"","subject":"Task 2","activityid":"a39c24f3-fafc-e411-80dd-00155d2a68cb"
        },{
          "@odata.etag":"W/\"474131\"","subject":"Task 3","activityid":"a49c24f3-fafc-e411-80dd-00155d2a68cb"
        },{
          "@odata.etag":"W/\"474134\"","subject":"Task 1 in batch","activityid":"a59c24f3-fafc-e411-80dd-00155d2a68cb"
        },{
          "@odata.etag":"W/\"474137\"","subject":"Task 2 in batch","activityid":"a69c24f3-fafc-e411-80dd-00155d2a68cb"
        }
      ]
    }
    --batchresponse_c1bd45c1-dd81-470d-b897-e965846aad2f--
    

참고 항목

웹 API를 사용하여 작업 수행
HTTP 요청 및 처리 오류 작성
웹 API를 사용하여 데이터 쿼리
웹 API를 사용하여 엔터티 만들기
웹 API를 사용하여 엔터티 검색
웹 API를 사용하여 엔터티 업데이트 및 삭제
웹 API를 사용하여 엔터티 연결 및 연결 해제
웹 API 기능 사용
웹 API 작업 사용
웹 API를 사용하여 다른 사용자를 가장
웹 API를 사용하여 조건부 작업을 수행

Microsoft Dynamics 365

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