Что означает эта ошибка. Метод RetrieveMultiple не поддерживает объекты типа в Dynamics CRM / api / data / ‹version›?

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

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

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

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

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


person Pavlo Mykhailyshyn    schedule 03.10.2019    source источник
comment
Ошибка четко указывает на то, что служебные документы и объекты шаблона ролей не поддерживают retreivemultiple. Я бы порекомендовал использовать retreive и посмотрю, что вы получите результаты.   -  person AnkUser    schedule 03.10.2019
comment
Как это сделать с помощью конечной точки /api/data/v9.0?   -  person Pavlo Mykhailyshyn    schedule 03.10.2019


Ответы (1)


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

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

person Arun Vinoth    schedule 03.10.2019