Что означает эта ошибка «Метод RetrieveMultiple» не поддерживает объекты типа »в Dynamics CRM / api / data / <version>? - PullRequest
1 голос
/ 03 октября 2019

Когда я пытаюсь выполнить запрос к GET ../api/data/<version>/officedocuments и как минимум к 10 объектам, я получаю сообщение об ошибке:

{"error": {"code": "0x80040800", "message":" Метод RetrieveMultiple не поддерживает сущности типа officedocument. "}}

С той же проблемой, с которой я столкнулся, когда пытался получить полный JSON конкретных записей сущностей

{"error": {"code": "0x80040800", "message": "Метод Retrieve" не поддерживает объекты типа 'roletemplate'. "}}

Может кто-нибудь предложить мне, как я могу перечислить все записи сущностей, например для officedocument сущности и получить полный JSON для упомянутых выше roletemplate записей?

1 Ответ

2 голосов
/ 03 октября 2019

Если это не разрешено / поддерживается, значит, мы не можем сделать это таким образом. Поэтому, если вам нужна эта сущность, используйте обходной путь использования веб-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));

Список получения нескольких поддерживаемых объектов можно найти здесь .

...