当我尝试执行对GET ../api/data/<version>/officedocuments
和至少 10 个实体的请求时,出现错误:
error":{"code":"0x80040800","message":"'RetrieveMultiple' 方法 不支持类型为"OfficeDocument"的实体。
当我尝试获取特定实体记录的完整 JSON 时,我遇到了同样的问题
{">error":{"code":"0x80040800","message":"'检索'方法执行 不支持类型为"角色模板"的实体。
有人可以建议我如何列出所有实体记录,例如officedocument
实体并获得上述roletemplate
记录的完整 JSON?
如果不允许/支持意味着我们不能那样做。因此,如果您需要该实体,请使用将 Web api 与 fetchxml 一起使用的解决方法。
https://crmdev.crm.dynamics.com/api/data/v9.1/roletemplates?fetchXml=<fetch> <entity name="roletemplate" > <attribute name="name" /> <attribute name="roletemplateid" /> </entity> </fetch>
清除查询如下所示:
<fetch>
<entity name="roletemplate" >
<attribute name="name" />
<attribute name="roletemplateid" />
</entity>
</fetch>
同样,该查询的解决方法是使用 ExecuteFetchRequest
//Try with IOrganizationService
var orgService = new OrganizationService(connection);
//Works
var orgSvcExecuteFetchResponse = (ExecuteFetchResponse)orgService.Execute(executeFetchReq);
//Doesn't work
var orgSvcRetrieveMultipleResponse = orgService.RetrieveMultiple(new FetchExpression(fetch));
//Try with CrmServiceClient:
var crmSvcClient = new CrmServiceClient(connectionString);
//Works
var crmSvcExecuteFetchResponse = crmSvcClient.Execute(executeFetchReq);
//Doesn't work
var crmSvcRetrieveMultipleResponse = crmSvcClient.RetrieveMultiple(new FetchExpression(fetch));
检索列表多个支持的实体可以在这里找到。
@Arun答案中的黑客不再有效。现在使用fetchXml
会导致相同的错误。
在 Dynamics 365 文档中Microsoft,明确提到roletemplate
和一堆其他实体仅供内部使用,不供开发人员使用。