查询调度程序 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":""}]}
我正在使用 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":""}]}