我试图读取(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个实体。
我们可以通过识别&使用内部系统实体的唯一值更新此字段(通过一些不支持的方式,如导出解决方案,修改&再输入)。然后描述字段文本可以用来过滤掉这些内部实体。
我从来没有试过。我会试试看的。尽快更新我的答案