QueryScheduleRequest无法在Microsoft CRM 2011中运行

时间:2014-01-15 10:55:00

标签: dynamics-crm-2011 dynamics-crm

我基本上想要使用 QueryScheduleRequest 检查特定用户在提供的时间范围内是否空闲。为此,我使用以下代码来检索用户在今天的日期的可用时间:

QueryScheduleRequest scheduleRequest = new QueryScheduleRequest
            {
                ResourceId = userResponse.UserId,
                Start = DateTime.Today,
                End = DateTime.Today,
                TimeCodes = new TimeCode[] { TimeCode.Available}
            };
QueryScheduleResponse scheduleResponse =    (QueryScheduleResponse)serviceProxy.Execute(scheduleRequest);

但是,我在CRM服务日历中看不到scheduleResponse中的正确响应。响应中的开始日期和结束日期也会发生变化。例如,假设我在scheduleRequest中输入开始日期和结束日期为12,但在scheduleResponse中,它们分别变为第12和第13。我已经检查过我指的是正确的用户。

这就是用户在CRM中的日程安排(工作时间:上午10点到晚上7点): enter image description here

这就是scheduleResponse的结果:

enter image description here

观察日期并安排更改。有没有其他方法可以实现此功能?

1 个答案:

答案 0 :(得分:0)

Dynamics CRM基本上将数据库中的所有日期存储为 UTC时间 .Crm用户必须转换为用户LocalTime。

获得scheduleResponse后。您可以使用以下代码获取用户开始时间结束时间

QueryScheduleResponse scheduleResponse = (QueryScheduleResponse)service.Execute(scheduleRequest);
                                    foreach (var getTimings in scheduleResponse.TimeInfos)
                                   {
                                       DateTime startTime =Convert.ToDateTime(getTimings.Start.Value.ToLocalTime());
                                       DateTime endTime = Convert.ToDateTime(getTimings.Start.Value.ToLocalTime());
                                   }

注意:我们还有 ExpandCalendarRequest 类来检索用户可用的时间