首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Dynamic365中以编程方式获取营业时间详细信息

如何在Dynamic365中以编程方式获取营业时间详细信息
EN

Stack Overflow用户
提问于 2018-02-14 07:45:26
回答 1查看 1.5K关注 0票数 1

我的Dynamic365ORG中有几个SLA。每个SLA都有不同的工作时间。

我有一个需求,需要以编程方式获取SLA中的营业时间细节(在插件/自定义工作流中调用)。

我需要的细节如下:

  • 每天的工作时间(如星期一8-5,星期二8.30-5.30等)
  • 休息时间列表
  • 随附的假期一览表

已经尝试过使用像QueryScheduleRequest和ExpandCalendarRequest这样的检索仿真器和CRM消息,但是到目前为止还没有得到所有的细节。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-14 09:05:50

您可以手动获得营业时间(日历)的详细信息,但是有相当多的步骤。我在下面大致概述了它们,但我建议您创建一个快速的控制台应用程序来进行调试,并逐步查看您可以实时使用的属性。

首先查询所需的SLA。如果您有ID,则使用:

代码语言:javascript
运行
复制
var sla = service.Retrieve("sla", ID, new ColumnSet(new string[] { "businesshoursid" });

然后获取与SLA关联的营业时间ID:

代码语言:javascript
运行
复制
var businessHoursId = sla.GetAttributeValue<EntityReference>("businesshoursid").Id;

然后检索营业时间(日历)本身:

代码语言:javascript
运行
复制
var calendar = service.Retrieve("calendar", businessHoursId, new ColumnSet(true));

日历可以有多个规则。使用以下方法检索它们:

代码语言:javascript
运行
复制
var calendarRules = calendar.GetAttributeValue<EntityCollection>("calendarrules");

这些外部日历规则将有一个模式,您可以看到使用

代码语言:javascript
运行
复制
var firstRulePattern = calendarRules[0].GetAttributeValue<string>("pattern");
// FREQ=WEEKLY;INTERVAL=1;BYDAY=SU,MO,TU,WE,TH,FR

但是为了每天的工作时间,你需要内部日历。以第一条规则为例:

代码语言:javascript
运行
复制
var innerCalendarId = calendarRules[0].GetAttributeValue<EntityReference>("innercalendarid").Id;
var innerCalendar = service.Retrieve("calendar", innerCalendarId, new ColumnSet(true);
var innnerCalendarRule = innerCalendar.GetAttributeValue<EntityCollection>("calendarrules").Entities.FirstOrDefault();

从您的内部规则中,注意属性durationoffset。这些值以分钟为单位,将给你每天的工作时间。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48782052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档