QuerySchedule вызов функции WebAPI - PullRequest
0 голосов
/ 09 января 2019

Я использую вызовы Web API для Dynamics 365, чтобы получить результат для функции QuerySchedule. Я попытался использовать это как связанную функцию, а также. Но ни один из них не возвращает ожидаемый результат. Ниже приведена документация по этому вопросу: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/queryschedule?view=dynamics-ce-odata-9

Я пробовал другой идентификатор ресурса, разные способы указания типа enum в вызове, полное имя функции и т. Д., Но всегда получаю сообщение об ошибке.

Мой звонок:

https://mycrm.com/api/data/v9.0/QuerySchedule(ResourceId=@p1,Start=@p2,End=@p3,TimeCodes=@p4)?@p1=resourceguid&@p2=2019-01-05T09:27:39Z&@p3=2019-01-05T21:27:39Z&@p4=Available

Ожидается, что на выходе будет QueryScheduleResponse, как указано в ссылке ниже: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/queryscheduleresponse?view=dynamics-ce-odata-9

Но я получаю сообщение об ошибке:

Ссылка на объект не установлена ​​для экземпляра объекта.

Может ли кто-нибудь, кто делал вызовы через веб-интерфейс API к Dynamics 365 с использованием OData, или иметь какой-либо опыт в этой любезной помощи?

1 Ответ

0 голосов
/ 15 января 2019

Быстро выполнил тест консоли браузера, фрагмент кода из этого сообщения в блоге отлично работает.

Вставляя часть фрагмента из блога, ваш код может сломаться, когда вы передаете "Доступно" вместо ['0'] для TimeCodes.

var requestUrl = "/api/data/v9.0/QuerySchedule(ResourceId=@p1,Start=@p2,End=@p3,TimeCodes=@p4)";
requestUrl += "?@p1=" + context.getUserId().replace("{", "").replace("}", "");
//put Id of resource you want get data for as parameter 1

requestUrl += "&@p2=" + JSON.stringify(start).replace(/"/g, "");
requestUrl += "&@p3=" + JSON.stringify(end).replace(/"/g, "");
requestUrl += "&@p4=" + JSON.stringify(['0']);

Даже вы можете вставить этот URL в адресную строку браузера в смарт-тест:

Запрос:

https://test.crm.dynamics.com/api/data/v9.0/QuerySchedule(ResourceId=@p1,Start=@p2,End=@p3,TimeCodes=@p4)?@p1=0EEE678F-C4FF-E711-A959-000D3A1A941E&@p2=2019-01-15T09:27:39Z&@p3=2019-01-15T21:27:39Z&@p4=['0']

Вы можете заметить, что ['0'] превратится в [%270%27], но появится ожидаемый ниже ответ.

Ответ:

{"@odata.context":"https://test.crm.dynamics.com/api/data/v9.0/$metadata#Microsoft.Dynamics.CRM.QueryScheduleResponse","TimeInfos":[{"Start":"2019-01-15T00:00:00Z","End":"2019-01-16T00:00:00Z","TimeCode":"Available","SubCode":"Schedulable","SourceId":"15f40c32-1609-46db-93da-1bbb8eb19c9d","CalendarId":"69b0ee2b-bad7-4b8e-9bcc-d03e76b45a03","SourceTypeCode":4004,"IsActivity":false,"ActivityStatusCode":-1,"Effort":1.0,"DisplayText":""}]}
...