如何从Dynamics CRM元数据中检测“仅供内部使用”的实体

时间:2011-10-21 14:17:56

标签: dynamics-crm

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

除了3个实体(“resourcegroupexpansion”,“workflowwaitsubscription”和“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个实体仅供内部使用,这可能解释了为什么我会收到错误(说我能够读取其他“仅供内部使用”的实体)。

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

1 个答案:

答案 0 :(得分:0)

不幸的是,没有标志来标识“仅供内部使用”实体。

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

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

我从未尝试过这个。试试&amp;很快就会更新我的回答。