다음을 통해 공유


OData 끝점을 사용하여 추가 데이터 작업 수행

 

게시 날짜: 2016년 11월

적용 대상: Dynamics CRM 2015

기본 데이터 작업 외에도 Microsoft Dynamics CRM 2015 및 Microsoft Dynamics CRM Online 2015 업데이트에 대해 REST 끝점을 사용하여 더 전문화된 데이터 작업을 수행할 수 있습니다.

이 항목의 내용

복합 유형을 null로 설정

전체 삽입 사용

개별 속성 업데이트

레코드 연결 및 연결 해제

복합 유형을 null로 설정

Microsoft Dynamics CRM 복합 형식null로 설정하려면 명시적으로 해당 유형 내에서 각 기본 유형을 null로 설정해야 합니다.

예를 들어 EntityReference 유형을 null로 설정하려면 Id, LogicalNameName 속성을 null로 설정해야 합니다.OptionSetValue, 금액BooleanManagedProperty에서도 마찬가지입니다.

전체 삽입 사용

전체 삽입은 동일한 작업에서 새 관련 레코드를 여러 개 만들 수 있는 기술입니다.

다음 샘플에서는 jQuery를 사용하여 거래처와 관련 작업 두 개를 정의하는 JavaScript 코드를 보여 줍니다. 자세한 내용은 jQuery 사용을 참조하십시오. 관련 작업을 나타내는 작업을 Account_Tasks 속성에 할당하고 /AccountSet URI에 대한 POST 요청을 사용하여 제출하면 한 작업으로 거래처 및 관련 작업 두 개가 만들어집니다.

var account = new Object();
account.Name = "Sample Account";

var task1 = new Object();
task1.Subject = "Sample Task 1";

var task2 = new Object();
task2.Subject = "Sample Task 2";

var tasks = new Array();
tasks.push(task1);
tasks.push(task2);

account.Account_Tasks = tasks;

var jsonAccount = window.JSON.stringify(account);

$.ajax({ type: "POST",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    url: ODataPath + "/AccountSet",
    data: jsonAccount,
    beforeSend: function (XMLHttpRequest) {
        //Specifying this header ensures that the results will be returned as JSON.
        XMLHttpRequest.setRequestHeader("Accept", "application/json");
    },
    success: function (data, textStatus, XmlHttpRequest) {},
    error: function (XMLHttpRequest, textStatus, errorThrown) {}
});

전체 삽입은 엔터티 관계의 양쪽에서 작업합니다. 앞의 예제에서 새 거래처 레코드의 컨텍스트에서 새 작업을 만들었습니다. 반대로 /TaskSet URI에 대한 POST 요청을 제출하여 새 관련 작업을 만드는 컨텍스트에서 새 거래처 레코드를 만들 수 있습니다.

개별 속성 업데이트

특정 특성을 다루는 URI를 사용하고 요청의 본문에서 새 값을 전달하는 HTTP PUT 요청을 사용하여 레코드에 대해 개별 특성 값을 업데이트할 수 있습니다.

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/Name

본문의 거래처에 대해 새 이름을 사용하여 HTTP PUT 요청에서 이 URI를 사용하면 해당 속성의 값만 업데이트합니다.

레코드 연결 및 연결 해제

레코드를 연결하거나 연결 해제하는 방법은 두 가지입니다. 엔터티 참조 속성의 데이터를 다른 유형의 속성인 것처럼 업데이트하거나 링크 리소스의 URL를 통해서입니다.

N:1 엔터티 관계의 "다" 쪽에서 레코드를 연결하거나 연결 해제할 때 $links URI를 사용합니다. N:N 및 1:N 엔터티 관계의 경우 $links 없이 URI를 사용합니다.

다음 샘플에서는 URI가 URI에 지정된 거래처 레코드에 연결된 영업 기회 레코드의 URI를 반환하는 것을 보여 줍니다.

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/opportunity_customer_accounts

기존 영업 기회 레코드를 이 거래처에 연결하려고 할 경우 본문에서 해당 영업 기회의 URI를 포함하는 HTTP POST 요청에 이 URI를 사용해야 합니다.

참고

N:1 엔터티 관계의 "다" 쪽에 있는 레코드를 연결할 경우 참조가 하나의 값만 지원하면 기존 값을 덮어쓰게 됩니다.

마찬가지로 영업 기회의 연결을 해제하려면 특정 링크 리소스에 대한 참조가 포함된 HTTP DELETE 요청을 사용해야 합니다. 다음 샘플에서는 URI가 ParentAccountId 엔터티를 사용하여 다른 거래처에 연결된 특정 거래처 레코드를 나타내는 것을 보여 줍니다.

/AccountSet(guid'c2d26b79-7496-df11-a7c2-00155dba380d')/$links/Referencedaccount_parent_account(guid'b0e5a4a6-8996-df11-a7c2-00155dba380d')

이 URI에 대한 HTTP DELETE 요청은 연결을 제거합니다.

참고

일부 엔터티 관계는 필수입니다. 필수 관계에 대한 데이터를 삭제하려고 하면 오류가 표시됩니다.

참고 항목

OData 끝점을 사용하여 기본 데이터 작업 수행
웹 리소스와 함께 OData 끝점 사용
Ajax 및 JScript 웹 리소스와 함께 OData 끝점 사용
샘플: JavaScript와 함께 OData 끝점을 사용하여 레코드 연결 및 연결 해제

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