Показать сообщение отдельно
Старый 13.03.2019, 14:57   #1  
Remuless is offline
Remuless
Участник
 
6 / 10 (1) +
Регистрация: 10.07.2015
Service Restrictions
Добрый день.
Dynamics 365.
Имеется задача: настроить триггерное создание и удаление ограничений сервиса.
Нашел такую ссылку, которую беру за пример, как создавать эти записи. Единственное, что отличается - все работа идет через Entity, отдельные классы не генерируем для сущностей.

И столкнулся с такой проблемой:
Создание происходит успешно, в базе появляются записи идентичные тем, которые были созданы руками через Рабочие Часы пользователя (имеются в виду и записи в таблицах Calendar и в CalendarRule).
Но эти записи:
1)не появляются в рабочих часах пользователя
2)эти записи не учитываются в штатном планировщике "Действий Сервиса"

Собственно, само создание:

X++:
Entity newInnerCalendar1 = new Entity();
                            newInnerCalendar1.LogicalName = "calendar";
                            newInnerCalendar1["businessunitid"] = new EntityReference("businessunit", ((EntityReference)user["businessunitid"]).Id);
                            newInnerCalendar1["primaryuserid"] = user.Id;
                            newInnerCalendar1["type"] = new OptionSetValue(-1);
                            Guid innerCalendarId1 = service.Create(newInnerCalendar1);
Entity innerCalendar1 = service.Retrieve("calendar", innerCalendarId1, new ColumnSet(true));

                            Entity restrictionRule1 = new Entity();
                            restrictionRule1.LogicalName = "calendarrule";
                            restrictionRule1["duration"] = 60;
                            restrictionRule1["issimple"] = true;
                            restrictionRule1["offset"] = (serviceappointment.ScheduledStart.Value.Hour - 1) * 60 + serviceappointment.ScheduledStart.Value.Minute;
                            restrictionRule1["rank"] = 0;
                            restrictionRule1["subcode"] = 9;//service restrictions
                            restrictionRule1["timecode"] = 3;//unavailable-filtered
                            restrictionRule1["timezonecode"] = -1;
                            restrictionRule1["serviceid"] = new EntityReference("service", crmService.Id);
((EntityCollection)innerCalendar1["calendarrules"]).Entities.Add(restrictionRule1);

service.Update(innerCalendar1);
Подскажите, в чем может быть причина?