2016-06-28 46 views
1

我正在處理兩個實體,約會和費用。我的目標是在指定費用日期onChange時,新的費用記錄自動填充其某些字段。它觸發一個應該返回具有相同日期和擁有用戶的記錄的查詢。我如何根據日期而不是時間在CRM中獲取Xml記錄?

這裏是我的代碼:

function bringData() 
{ 
    var date = Xrm.Page.getAttribute("new_tripDate").getValue(); 
    var owner = Xrm.Page.getAttribute("ownerid").getValue(); 
    if (owner != null) 
     { 
      var ownerID = owner[0].id; 
      var ownerName = owner[0].name;  
     } 

    var fetchXml="<fetch mapping='logical'>"+"<entity name='appointment'>"+"<attribute name='regardingobjectid'/>"+"<filter>"+"<condition attribute = 'ownerid' operator='eq' value='"+ownerID+"' />"+"<condition attribute='scheduledstart' operator='on' value='"+date+"' />"+"</filter>"+"</entity>"+"</fetch>"; 
    var retrievedAppointments = XrmServiceToolkit.Soap.Fetch(fetchXml); 
    if (retrievedAppointments.length == 0) 
     { 
      alert("No matching records were found."); 
      return; 
     } 
    else 
     { 
      console.log(retrievedAppointments); 
     } 
} 

從目前的費用頁面獲取日期和使用它進行查詢。但是,該功能給我一個錯誤,說明日期「無效,或超出支持的範圍」。我從查詢中刪除了日期條件,並返回基於擁有用戶的記錄沒有問題。我覺得問題是在約會實體中有一個特定的時間,而不是在費用日期,但我認爲使用「在」條件操作符會解決這個問題。我很茫然。

感謝

+0

什麼樣的價值是由'Xrm.Page.getAttribute( 「new_tripDate」)返回的getValue()'? –

+0

「new_tripDate」返回費用的日期。它只是一個日期字段,所以它返回時間爲00:00:00 –

回答

1

由Xrm.Page.getAttribute(「new_tripDate」)返回的日期時間格式。的getValue()是讀取無法處理的東西,你需要將其轉換爲ISO Format在最低限度。

通過使用ISOFormat方法更改日期格式,或者使用像moment.js這樣的庫或者想出自己的小幫助函數來返回格式正確的日期字符串。 用以下內容替換您的日期變量:

var date = new Date(Xrm.Page.getAttribute("new_tripDate").getValue()).toISOString(); 
+0

這解決了它。謝謝! –

相關問題