使用 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,您必須設定 Id、LogicalName 和 Name 屬性設定為 null。OptionSetValue、金額 和 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. 著作權所有,並保留一切權利。 著作權