【问题标题】:Resultset returns blank rows Microsoft Dynamics CRM 2011结果集返回空白行 Microsoft Dynamics CRM 2011
【发布时间】:2016-06-20 07:09:46
【问题描述】:

我是 Microsoft Dynamics CRM 2011 的新手。我目前正在维护由其他人开发的 CRM 系统。 CRM 中有自定义实体。如果我尝试通过OData Query tool 执行,则有一个结果集 PendingSet 返回行

但是当我尝试使用相同的 URL 通过浏览器查看结果集时,它会返回空白行。

由于空白结果集,它在表单中显示 javascript OData 错误。

这个问题背后的原因是什么?

注意:我已经查看了数据库视图。它有记录。

编辑:在此处添加代码。下面的 ajax 调用抛出错误:

function CheckJustification(bag_pendingId, CHANGECASESEVERITY) {
  var query = "/bag_pendingSet?$filter=bag_pendingCaseId/Id eq guid'" + bag_pendingId + "' and bag_reasontype/Value eq " + CHANGECASESEVERITY + "";
  var justificationexist = ExecuteQuery(query);
  return justificationexist;

}

//
// ExecuteQuery executes the specified OData Query asyncronously
//
// NOTE: Requires JSON and jQuery libraries. Review this Microsoft MSDN article before 
//       using this script http://msdn.microsoft.com/en-us/library/gg328025.aspx
//
function ExecuteQuery(ODataQuery, obj) {

  var serverUrl = Xrm.Page.context.getServerUrl();
  var justification = true;

  // Adjust URL for differences between on premise and online 
  if (serverUrl.match(/\/$/)) {
    serverUrl = serverUrl.substring(0, serverUrl.length - 1);
  }

  var ODataURL = serverUrl + "/XRMServices/2011/OrganizationData.svc" + ODataQuery;

  $.ajax({
    type: "GET",
    contentType: "application/json; charset=utf-8",
    datatype: "json",
    url: ODataURL,
    beforeSend: function(XMLHttpRequest) {
      XMLHttpRequest.setRequestHeader("Accept", "application/json");
    },
    success: function(data, textStatus, XmlHttpRequest) {
      //
      // Handle result from successful execution
      //
      try {
        justification = data.d.results[0].bag_pendingCaseId;
      } catch (e) {
        justification = false;
      }

    },
    error: function(XmlHttpRequest, textStatus, errorObject) {
      //
      // Handle result from unsuccessful execution
      //
      alert("OData Execution Error Occurred");
    }
  });
  return justification;

}

【问题讨论】:

    标签: dynamics-crm-2011 odata


    【解决方案1】:

    看起来网络浏览器返回的结果只是试图将它们错误地显示为 RSS 提要。

    打开; Internet 选项 > 内容 > 设置 > “打开提要阅读视图”以关闭。

    当您尝试浏览结果时,您现在应该会获得数据的 Atom 提要。

    您的 JavaScript 可能有问题,在这种情况下,分析问题的最佳方法是打开调试器 (F12) 并单步执行代码以查找问题。

    【讨论】:

    • 如上更改设置后可以查看数据。问题似乎在于 JS 中生成的 URL 的可访问性。在 JS 中生成的 URL 包含服务器的名称。如果我在浏览器中尝试相同的操作,则会显示错误“无法显示页面”。如果我将其替换为 IP 地址,则 URL 将返回结果集。它与 Web 服务的端点定义有关吗?
    • JS 使用的是 context.getServerUrl() 还是 context.getClientUrl() ?确保它是最新的。另一种选择是添加一个 DNS 规则,以根据它使用的名称解析 IP。
    • @S.KC,如果您仍然有问题,我建议您发布您的代码,以便大家看看。
    • @JamesWood 我已经编辑了我的问题以包含代码。
    猜你喜欢
    • 2018-09-22
    • 1970-01-01
    • 1970-01-01
    • 2011-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-29
    相关资源
    最近更新 更多