Dynamics crm 2011 QueryScheduleRequest在Microsoft CRM 2011中不起作用
我主要想使用QueryScheduleRequest检查特定用户在提供的时间范围内是否空闲。为此,我使用以下代码检索用户在今天日期的可用时间:Dynamics crm 2011 QueryScheduleRequest在Microsoft CRM 2011中不起作用,dynamics-crm-2011,dynamics-crm,Dynamics Crm 2011,Dynamics Crm,我主要想使用QueryScheduleRequest检查特定用户在提供的时间范围内是否空闲。为此,我使用以下代码检索用户在今天日期的可用时间: QueryScheduleRequest scheduleRequest = new QueryScheduleRequest { ResourceId = userResponse.UserId, Start = DateTime.Today,
QueryScheduleRequest scheduleRequest = new QueryScheduleRequest
{
ResourceId = userResponse.UserId,
Start = DateTime.Today,
End = DateTime.Today,
TimeCodes = new TimeCode[] { TimeCode.Available}
};
QueryScheduleResponse scheduleResponse = (QueryScheduleResponse)serviceProxy.Execute(scheduleRequest);
但是,我在scheduleResponse中没有得到CRM服务日历中看到的正确响应。响应中的开始和结束日期也在更改。例如,假设我在scheduleRequest中输入开始日期和结束日期为12,但在scheduleResponse中,它们分别更改为12和13。我已经检查过我指的是正确的用户
这就是CRM中用户的日程安排(工作时间:上午10点到晚上7点):
scheduleResponse中的结果如下所示:
注意更改日期和时间表。是否有其他方法可以实现此功能?基本上,Dynamics CRM将数据库中的所有日期存储为UTC时间。CRM用户必须转换为用户本地时间 在获得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类来检索用户可用的时间安排我认为您遇到的问题是因为您的客户机和crm服务器(无论在哪里)之间的时区差异。也许是开始的地方。