[英]dynamics crm using odata to retrieve a guid from "type: Microsoft.Crm.Sdk.Data.Services.EntityReference"
我有三個實體——1.“注冊”2.“事件”3.“事件類別”
在保存注冊記錄時,我想使用選擇的“事件”的 guid 來檢索關聯的“事件類別”的 guid。 我相信我檢索“事件類別”guid 的麻煩是因為事件類別查找是一個 EntityReference。 我不確定如何構建我的 odata 查詢以僅檢索事件類別的 guid。
我構建 odata URL 的代碼如下:
function getAssociatedEventId () {
var eventId = getEventId ();
retrieveMultiple("new_eventclassSet", "?$select=new_EventCategoryId&$expand=new_new_eventcategory_new_eventclass/new_eventcategoryId&$filter=new_eventclassId eq (guid'" + eventId + "')", findEventQuestions, null, null);
}
function retrieveMultiple(odataSetName, filter, successCallback, errorCallback, _executionObj) {
var serverUrl = Xrm.Page.context.getClientUrl();
var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc";
var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName;
if (filter) {
odataUri += filter;
}
首先,我通過 Web 資源中的 javascript 函數獲取事件 ID,然后我希望使用它來檢索與事件關聯的事件類別的 ID。 當我的代碼運行時,它調用了 successCallback 函數,但數據返回“未定義”。 我相信這是因為我使用我構建的 URL 獲得的數據響應返回了一個實體引用。 我不確定如何構建 URL 來確定 ID。 我已經包含了來自開發人員控制台的“響應”選項卡的圖片。 希望這有幫助。 非常感謝您的任何意見。
EntityReference
返回是正常的且符合預期。 只需提取Id
,例如EntityReference.Id
,即您的記錄的Guid
。
如果 OData 服務的協議版本為 V4,則正確的查詢 URL 應為:
$filter=new_eventclassId/Id eq 4c2c1c1e-1838-42ca-b730-399816de85f8
請注意 Guid 周圍沒有單引號。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.