2

我有一个使用 XML 数据源的 SSRS 子报告,该数据源在 BIDS 中或从 SSRS 服务器部署和运行时运行良好,但是一旦在 Microsoft Dynamics CRM 2011 中部署为报告,它在从 CRM 调用时无法运行,因为 SSRS 抛出以下异常:

Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException: An error has occurred during report processing. --->
Microsoft.ReportingServices.DataExtensions.XmlDP.XmlDPException:
The data extension supports Windows Integrated Security and No Credentials (anonymous request) only.

父报表使用 FetchXML 加载一些数据,然后将这些数据作为参数传递到子报表中。CRM 自动通过 UserID/OrganizationID 是任何报告的凭据,这是正确的,因为需要凭据才能在父报告中调用 FetchXML,但是从例外情况来看,在我看来子报告也是(不正确?)从父报表继承数据源凭据设置,尽管子报表使用完全不同类型的数据源和凭据设置。

如果子报表在 CRM 中发布并自行运行,那么它也可以正常工作,但这并不能满足业务需求。子报表必须包装在父报表中,以便传递用户可选择的参数。

是否有任何方法可以覆盖此行为,可能是子报告中的一些自定义代码可以强制 XML 数据源使用“不使用凭据”设置?

4

1 回答 1

1

在为这个问题拉了几个小时后,我最终发现这似乎是 CRM 从第一次上传报告时缓存初始数据源凭据设置(最初肯定是不正确的)的问题。如果您在现有报告之上重新上传 RDL,则它不得更新它必须维护凭据设置的某些缓存。

删除已发布的报告,然后首先重新发布子报告(XML 数据源),然后父报告(决定使用 SQL 数据源而不是 FetchXML 来尝试消除 FetchXML 作为问题)按预期工作。

使用 CRM SSRS 报告时要学习的课程:尝试删除报告并重试!

这是在 CRM 2011 UR11 上。

于 2013-10-08T14:56:53.853 回答