查询调度程序 Web API 函数调用

QuerySchedule WebAPI function call

我正在使用 Web API 调用 Dynamics 365 来获取函数 QuerySchedule 的结果。我也尝试过将其用作绑定函数。但是 none 其中 returns 是预期的结果。以下是关于此的文档: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/queryschedule?view=dynamics-ce-odata-9

我尝试了不同的资源 ID、在调用中指定 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 link: https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/queryscheduleresponse?view=dynamics-ce-odata-9

但我不断收到错误消息:

Object reference not set to an instance of an object.

任何使用 OData 对 Dynamics 365 进行过 Web api 调用或对此有任何经验的人都可以提供帮助吗?

快速进行了浏览器控制台测试,来自 this blog post 的代码片段工作正常。

从博客粘贴部分代码片段,您的代码可能会在您传递 "Available" 而不是 ['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":""}]}