检索多个记录OData java脚本Microsoft Dynamics CRM

问题描述:

我正在使用以下java脚本代码通过帐户ID检索联系人。我设置了警报消息调试。它不成功回拨消息功能。检索多个记录OData java脚本Microsoft Dynamics CRM

结束了以下错误

错误而检索 “错误”:{ “郎”: “EN-US”, “值”: “语法错误 '\ ufffd' 20位” }

我正在使用以下代码。

function retrieveMultiple(odataSetName, select, filter, successCallback) { 
    var serverUrl = Xrm.Page.context.getServerUrl(); 
    var ODATA_ENDPOINT = "/XRMServices/2011/OrganizationData.svc"; 
    var odataUri = serverUrl + ODATA_ENDPOINT + "/" + odataSetName + "?"; 

    alert("retrieveMultiple"+odataUri); 

    if (select) { 
     odataUri += "$select=" + select + "&"; 
     alert("select error="+odataUri); 
    } 

    if (filter) { 
     odataUri += "$filter=" + filter; 
     alert("filter error="+odataUri); 
    } 

    $.ajax({ 
     type: "GET", 
     contentType: "application/json; charset=utf-8", 
     datatype: "json", 
     url: odataUri, 
     beforeSend: function (XMLHttpRequest) { 
      //Specifying this header ensures that the results will be returned as JSON. 
      var x = XMLHttpRequest.setRequestHeader("Accept", "application/json"); 
      alert(" in Ajax :beforeSend:" + x); 
     }, 
     success: function (data, textStatus, XmlHttpRequest) { 
      alert("In success function outside success"); 

      if (successCallback) { 
       alert("successCallback in if"); 

       if (data && data.d && data.d.results) { 
        alert("data && data.d && data.d.results"+data + data.d + data.d.results); 
        successCallback(data.d.results, textStatus, XmlHttpRequest); 
        alert("data.d.results, textStatus, XmlHttpRequest" + data.d.results + textStatus +  XmlHttpRequest); 
       } 
       else if (data && data.d) { 
        successCallback(data.d, textStatus, XmlHttpRequest); 
       } 
      else { 
       successCallback(data, textStatus, XmlHttpRequest); 
      } 
     } 
    }, 
    error: function (XmlHttpRequest, textStatus, errorThrown) { 
     alert(" In erro function"); 

     if (XmlHttpRequest && XmlHttpRequest.responseText) { 
      alert(" In error function If"); 
      alert("Error while retrieval ; Error – " + XmlHttpRequest.responseText); 
     } 
    } 
}); 
} 

function readRecordsOnSuccess(data, textStatus, XmlHttpRequest) { 
    // Loop through the retrieved records 
    for (var indx = 0; indx < data.length; indx++) { 
     alert("Name – " + data[indx].name); 
    } 
} 

function retrieveContactsByAccountId() { 
    // Pass ‘Contact’ set name since we are reading Contacts 
    var oDataSetName = "ContactSet"; 

    // Column names of ‘Contact’ (Pass * to read all columns) 
    var columns = "FirstName"; 

    // Read Account Guid 
    var accountId = Xrm.Page.data.entity.getId() 

    // Prepare filter 
    var filter = "AccountId/Id eq guid’" + accountId + "‘"; 

    alert("retrieveContactsByAccountId"+filter); 

    retrieveMultiple(oDataSetName, columns, filter, readRecordsOnSuccess); 
} 

貌似普通打字错误)请注意下面的字符串您传递:

var filter = "AccountId/Id eq guid’" + accountId + "‘"; 

你的撇号different从平常ones

您需要使用常规'

var filter = "AccountId/Id eq guid'" + accountId + "'"; 
+0

谢谢。现在它经历了所有的功能,但仍然没有显示出期望的结果。 – ozil 2013-03-25 09:24:57

+0

它是否达到'successCallback'函数? – SergeyS 2013-03-25 11:06:08

+0

是的!它正在达到成功回调函数 – ozil 2013-03-25 11:36:00