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

问题描述 投票:1回答:1

我正在使用对Dynamics 365的Web API调用来获取函数QuerySchedule的结果。我也尝试过将它作为绑定函数使用。但是他们都没有返回预期的结果。以下是关于此的文档: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,如下面的链接所示:https://docs.microsoft.com/en-us/dynamics365/customer-engagement/web-api/queryscheduleresponse?view=dynamics-ce-odata-9

但我不断收到错误消息:

你调用的对象是空的。

任何使用过OData做过web api的人都可以调用Dynamics 365,或者对这种帮助有任何经验吗?

dynamics-crm odata dynamics-365 dynamics-crm-webapi
1个回答
0
投票

快速做了一个浏览器控制台测试,this blog post的代码片段运行正常。

从博客中粘贴片段的一部分,当您传递“可用”而不是['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']);

即使您可以将此网址粘贴到浏览器地址栏中进行智能测试:

请求:

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":""}]}
© www.soinside.com 2019 - 2024. All rights reserved.