如何从动态 CRM 元数据中检测"for internal use only"实体



我试图读取(FetchXml)基于我使用元数据webservice获得的列表的所有实体的所有可读属性的内容。

这工作正常,除了3个实体("resourcegroupexpansion", "workflowwaitsubscription"one_answers"interprocesslock"),我系统地得到以下错误:

<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <soap:Body>
    <soap:Fault>
      <faultcode>soap:Server</faultcode>
      <faultstring>Server was unable to process request.</faultstring>
      <detail>
        <error>
          <code>0x80040216</code>
          <description>An unexpected error occurred.</description>
          <type>Platform</type>
        </error>
      </detail>
    </soap:Fault>
  </soap:Body>
</soap:Envelope>

根据这个http://msdn.microsoft.com/en-us/library/gg328086.aspx这3个实体仅供内部使用,这可能解释了为什么我得到一个错误(已经说我能够读取其他"内部使用"实体)。

所以我的问题是:我如何从元数据中检测哪些实体是"仅供内部使用",哪些不是?当然,我可以根据文档硬编码实体列表,但我觉得它不是很令人满意。

遗憾的是,没有标志来标识"仅供内部使用"的实体。

但是我从XrmToolbox元数据浏览器中注意到的一件事-实体的描述列有"仅供内部使用"的文本~15个实体。

我们可以通过识别&使用内部系统实体的唯一值更新此字段(通过一些不支持的方式,如导出解决方案,修改&再输入)。然后描述字段文本可以用来过滤掉这些内部实体。

我从来没有试过。我会试试看的。尽快更新我的答案

相关内容

最新更新