我有一个SSRS子报告,它使用的XML数据源在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数据源使用“不使用凭据”设置?
答案 0 :(得分:1)
在这个问题上拔了几个小时之后,我终于发现,从首次上传报告时,CRM缓存初始数据源凭据设置(最初必定是不正确的)似乎是一个问题。如果您在现有报告的基础上重新上传RDL,则不得更新必须保留凭据设置的某些缓存。
删除已发布的报告,然后首先重新发布子报告(XML数据源),然后父报告(决定使用SQL数据源而不是FetchXML尝试消除FetchXML作为问题)按预期工作。
使用CRM SSRS报告时要学习的内容:尝试删除报告并重试!
这是在CRM 2011 UR11上。