自 Dynamics 365 以来 FetchXML 报告中的错误

Error in FetchXML report since Dynamics 365

最近我在 Dynamics 365 更新的 CRM OL 中呈现报告时遇到错误。现在我在 VS 中测试时,它也显示此错误。内容如下:

Could not create a list of fields for the query. verify that you can connect to the data source and that your query syntax is correct. The specified record type does not exist in Microsoft Dynamics CRM. The entity "XXX" cannot be found. Specify a valid query and try again. The entity with a name = 'XXX' was not found in the MetadataCache

我可以连接,这始终使用 CRM OL Link 有效,凭据相同并且实体在那里。我刚刚从我的高级查找中复制了 fetchxml,所以很确定它在那里。

我不知道 365 有什么变化可以打破这个问题。但是,我要修复它的方法是使用使用同一实体的向导创建一个报告。下载该报告并检查以下内容:

  • 数据源 - 数据源名称 and/or 连接字符串有任何细微差别吗?
  • 数据集 - FetchXML 从大小写到版本等是否有任何细微差别?

应该能指出问题所在。如果没有,并且该下载的报告有效,则只需将您需要的属性等复制到新报告中,然后使用它(它可能是报告本身中的一些 xml)。或者,如果您的报告没有任何内容,您可以开始比较 2 份报告的原始 xml,看看有什么不同。

此错误:"The entity with a name = 'XXX' was not found in the MetadataCache" 是 CRM 中缓存的常见错误(缓存元数据以加快处理速度)。在本地环境中,通常有用的是简单的 IISRESET,这不是 CRM Online 的选项。我会尝试明显的解决方案,例如在 CRM 中重新发布所有自定义项(根据我的经验,它很少能解决此错误,但值得一试),也许添加一些虚拟插件(然后将其删除)。如果您仍然会遇到此错误,那么下一步应该联系 MS 支持(IIS AppPools 也会在一段时间后重置,所以也许明天它会起作用 - 看起来像是一个糟糕的笑话,但实际上这是真的......)

如果您有多个 CRM 实例,请确保指向正确的实例,但添加 ;crminstance;在连接字符串的末尾。这为我解决了问题。