Dynamics CRM报告不显示数据

时间:2015-02-07 19:59:35

标签: sql-server reporting-services dynamics-crm dynamics-crm-2013

我遇到了一个问题,当我将自定义报告上传到Dynamics CRM时,它不会在报告中显示任何数据。在我的报告中,我使用存储过程存储在一个名为" CustomReports"的单独数据库中。我做了一些测试,看看我是否可以确定导致问题的确切原因,但不幸的是我没有运气。 以下是我尝试过的测试列表:

  1. 使用我的" CustomReports"上传报告用于从CRM筛选视图访问数据的数据库。 - 没有数据返回
  2. 在我们的报告管理器中保存此确切报告 - 数据已返回
  3. 使用我的" CustomReports"上传报告数据库,用于访问CRM未过滤视图中的数据 - 数据已返回
  4. 使用CRM数据库和过滤视图上传报告。 - 退回数据
  5. 在我运行上面的测试4之前,我认为它可能与CRM安全模型有关。现在我完全难过了。为什么当我调用使用我的自定义数据库中的过滤视图的存储过程时它不会显示结果但是当我使用CRM作为我的数据源编写相同的查询时它会返回结果?如果有人遇到过类似的情况或对如何解决这个问题有所了解,那将非常感激。

2 个答案:

答案 0 :(得分:1)

由于它正在访问CRM Filtered视图,因此SQL用于从自定义数据库访问Filtered视图的用户将对其进行安全修整。我不认为基于CRM的报告将作为运行报告的CRM用户访问 CustomReports 的数据源点。因此,您需要确保SSRS和SQL最终使用的任何用户帐户都是CRM中的有效用户,并且具有对相关数据的读取权限。

如果您可以使用步骤#4访问数据,这是将数据导入报告的首选和受支持的方法。我知道传统上我们想为报告编写Stored Procs,但这不在Dynamics CRM模型之外。通常可以这样做,假设您没有在线使用CRM,但是您正在引入更多复杂性,而这些复杂性并未在CRM中得到充分记录。

答案 1 :(得分:0)

NickNow的回复帮助指导我解决了问题所在。正如他所说,我的CRM用户的用户凭据未被传递到我的 CustomReport 数据库,因为我使用的是该数据源的集成安全连接类型。因此,我认为我作为CRM App Service用户连接到数据库,而不是实际的CRM登录用户,因此CRM安全模型过滤掉了我的报告中的所有数据。

我解决这个问题的方法是将我的CRM数据库设置为我的DataSource,而不是我的 CustomReport 数据库。然后在我的报告查询中,我从 CustomReport 数据库中执行了我的存储过程。所以我的查询是: EXEC CustomReport.dbo.StoredProcedure

这使得数据显示在我的报告中。