共用方式為


使用 OData 端點執行其他資料作業

 

發行︰ 2016年11月

適用於: Dynamics CRM 2015

除了基本資料作業之外,您可以使用 REST 端點,讓 Microsoft Dynamics CRM 2015 和 Microsoft Dynamics CRM Online 2015 更新 執行某些其他特製化資料作業。

本主題內容

將複雜類型設定為 null

使用深層插入

更新個別的屬性

關聯及解除關聯記錄

將複雜類型設定為 null

若要將 Microsoft Dynamics CRM 複雜類型 設定為 null,您必須明確將其中每個基本類型設定為 null

例如,若要將 EntityReference 類型設定為 null,您必須設定 IdLogicalNameName 屬性設定為 nullOptionSetValue金額BooleanManagedProperty 也是如此。

使用深層插入

深層插入是您可以在相同作業中建立多個相關新記錄的技術。

下列範例顯示使用 jQuery 定義客戶及兩項工作的 JavaScript 程式碼。 如需詳細資訊,請參閱使用 jQuery。 當工作指派給代表相關工作的 Account_Tasks 屬性並透過使用 POST 要求送到 /AccountSet URI 時,在一個作業中建立客戶與兩個相關工作:

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) {}
});

深層貼上可在實體關聯的任一端運作。 先例在新客戶記錄的內容中建立新工作。 您可以反轉此作業,透過將 POST 要求送到 /TaskSet URI,在建立新的相關工作的內容中,建立新的客戶記錄。

更新個別的屬性

您可以使用 HTTP PUT 要求,在要求主體中使用定址特定屬性的 URI 與傳遞新值,更新記錄的個別屬性值。

/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

如果您要關聯現有商機記錄與此客戶,在 HTTP POST 要求 (其主體中包含商機 URI) 中必須使用此 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 端點搭配 Web 資源
使用 OData 端點搭配 AJAX 和 JScript Web 資源
範例:使用 OData 端點和 JavaScript 關聯及解除關聯記錄

© 2017 Microsoft. 著作權所有,並保留一切權利。 著作權