我试图根据我使用元数据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个实体仅供内部使用,这可能解释了为什么我会收到错误(说我能够读取其他“仅供内部使用”的实体)。
所以我的问题是:如何从元数据中检测哪些实体“仅供内部使用”,哪些不是? 当然,我可以根据文档对实体列表进行硬编码,但我觉得它并不令人满意。
答案 0 :(得分:0)
不幸的是,没有标志来标识“仅供内部使用”实体。
但是我从XrmToolbox元数据浏览器注意到的一件事 - 实体的描述列具有~15个实体的“仅供内部使用”文本。
我们可以通过识别&amp;使用内部系统实体的唯一值更新此字段(通过某些不受支持的方式,如导出解决方案,修改和重新导入)。然后,描述字段文本可用于过滤掉这些内部实体。
我从未尝试过这个。试试&amp;很快就会更新我的回答。