Добрый день,

При регистрации нового раздела календарь в section wizard, выбрав опцию select existing object - calendar  при сохранении система выдает следующую ошибку:

В таблице SysSchema есть схема с таким названием. Если эту схему удалить, то появляется уже другая ошибка, что нет записи с Id..

Unable to save schema. Name: UsrCalendarFile. Caption: Calendar attachment. Error: InvalidNameException. Schema with name "UsrCalendarFile" and type "EntitySchemaManager" already exists in workspace.. Contact system administrator.

 

Нравится

1 комментарий

Добрый день.
Данная ошибка говорит о том, что при попытке создать раздел, система находит уже созданные схемы и файлы для этого раздела.
Возможно этот раздел уже создавался ранее.
Вам нужно удалить Все сущности и файлы в кастомном (Customer) пакете которые связанные  с объектом Calendar.

Также Вы можете поменять префикс с Usr на свой, тогда не будет конфликта имен с уже существующими схемами.

Показать все комментарии

Добрый день.

Имеем 2 среды, на обеих есть стандартный раздел Calendar. При выборе записи в календаре на разных средах открываются разные страницы редактирования. На одной это дефолтная CalendarPage, на другой - кастомная UsrCalendar1Page. Нам нужно, чтобы на обеих средах открывалась CalendarPage. Как это сделать ?

Нравится

1 комментарий

Добрый день!

В базовой версии нет раздела "Календари". Есть такой объект, который используется в качестве справочника. 

По поводу изменения страницы редактирования - опишу общий механизм работы, так как не знаю id ваших объектов и схем.

Для того чтобы привязать другую страницу редактирования к разделу, сначала нужно удалить привязку уже существующей. Делается это удалением записи из таблицы БД SysModuleEdit.

 

Привязка:

1. Необходимо сделать Select из SysModuleEntity (информация о разделах).

select top  1* from SysModule (nolock) where Code LIKE N'Calendar'

 

2. 

SysModuleEdit (информация о страницах редактирования)

insert into SysModuleEdit (SysModuleEntityId
,UseModuleDetails
,CardSchemaUId
,ActionKindCaption
,ActionKindName
,PageCaption)
values ('[SysModuleEntityId]'
,1
,'[CardSchemaUId]'
,N'Добавить'
,'CalendarPage'
,N'Страница редактирования: "Календари"')

где  [SysModuleEntityId] - колонка Id записи таблицы SysModuleEntity из запроса пункта 1

[CardSchemaUId]  - колонка Uid страницы редактирования объекта (например, "CalendarPage") в таблице SysSchema (проверка Select Uid,Name from SysSchema where name like '%CalendarPage%'). Нам необходима схема, которая называется "Название объекта + Page"

[ActionKindCaption] - Название кнопки в реестре раздела;

[ActionKindName] - Название схемы страницы редактирования;

[PageCaption] - Заголовок схемы страницы редактирования в таблице SysSchema (проверка Select Uid,Name,Caption from SysSchema where name like '%CalendarPage%')

 

Пример запроса:

insert into SysModuleEdit (SysModuleEntityId
,UseModuleDetails
,CardSchemaUId
,ActionKindCaption
,ActionKindName
,PageCaption)
values ('8ecb467a-84cf-4919-b721-61bfd200f5da'
,1
,'49dd3df2-75f5-41c1-a7cb-fe984e2b43a4'
,N'Добавить'
,'UsrDistributor1Page'
,N'Card schema: "Страница редактирования: "Дистрибьютор"')

Показать все комментарии

Добрый день!

Хотела бы уточнить, как происходит интеграция Creatio с Google календарём. Возможно, существуют интеграции с другими календарями. Какие? Как происходит интеграция? 

Также вопрос, существует ли двусторонняя синхронизация, при которой CRM извлекает данные из календаря и передает данные из CRM

Нравится

1 комментарий

Маргарита, поддерживается интеграция с календарями Google и Microsoft, она двухсторонняя. Подробнее о возможностях и настройке см. статьи по ссылкам, о технической реализации см. тут.

Показать все комментарии

Коллеги, добрый день, подскажите, пожалуйста, что нужно сделать, чтобы в Настройке учетной записи появилась возможность выбрать общие календари для синхронизации?
Прикладываю скрины.

Версия: 7.16.2

Прикрепленные файлы

Нравится

1 комментарий

Артём,  сейчас такое не поддерживается, считываются только календари владельца ящика. Зарегистрировал пожелание.

Показать все комментарии

Всех приветствую.

Поделитесь, пожалуйста, своим опытом работы с календарями.

Интересует пользовались ли уже реализованными в базовой версии методами или разрабатывали свои и почему был сделан такой выбор?

Нравится

5 комментариев

Например, был опыт с попытками починить календарь в 3.3.2, когда при нестандартных настройках начала недели в Windows вел себя странно.

 

Алла, а в чём твой вопрос по нынешнему календарю? Есть какие-то пожелания по доработке в новых версиях «коробки» или в отдельных дополнениях?

 

Зверев Александр,

 

Подскажи, пожалуйста, а где в базовой версии используется работа с календарями?

Алла, есть справочник:

В продуктах Creatio service enterprise, customer center и bank customer journey в справочнике [Календари] можно настроить разные виды календарей, используемых в процессе обслуживания клиентов, в соответствии с условиями их сервисных договоров. Например, если ваши клиенты и сотрудники службы поддержки находятся в разных часовых поясах, настроенный календарь позволит избежать рассогласования при обработке обращений. В продуктах Creatio customer center и bank customer journey справочник используется при заполнении страницы сервиса, а в продукте Creatio service enterprise — сервисного договора.

В продукте Creatio sales enterprise в справочнике [Календари] можно настроить разные виды календарей, используемых при планировании визитов торговых представителей. Справочник используется приложениями Field force и Pharma, доступными в Creatio marketplace, при заполнении профиля пользователя и страницы врача.

Зверев Александр,

 

Во-первых, меня интересовала версия 7.16 (в тегах было указано), а не 3.3.2) Во-вторых, как и больше, чем полгода назад интересует реализованы ли базовые функции для работы с календарями, например, по определенному календарю за определенный интервал времени определить количество рабочих дней, получить все рабочие вторники или получить количество выходных, кроме субботы и воскресенья.

P.S. Сейчас меня интересует последняя актуальная версия 7.17.

Как можно получить рабочий ли день в новом расчете сроков (без устаревшей и неподдерживаемой библиотеки CalendarUtils)? Если по дню недели — то так. У нас есть таблица DayType. У неё есть признак NonWorking. C таблицей dayofweek она связана через DayInCalendar. Напрямую публичного метода, который выдавал бы этот признак, у нас нет. Примеры можно посмотреть в методах FillWeekTemplate и FillDayOffInfo в классе CalendarDataStore.

Показать все комментарии

Добрый день!

Подскажите, как в системе Service Enterpise правильно настроить календарь 24x7 в справочнике Календари.

Если указывать рабочее время с 0:00 до 23:59 то при подсчёте, например, кол-ва минут

между датами регистрации и планового решения обращения с учетом  календаря 24x7, теряются минуты.

Для рас чета используется функция  GetWorkingTimeSpan из схемы TermCalculatorActions.

Пример:

Дата создания: 2019-10-01 12:21:54.0000000

Дата планового решения: 2019-10-03 12:21:39.0000000

Срок решения: 2 календарных дня.

sql datediff: 2880 минут

расчёт с учетом календаря: 2878

 

Нравится

1 комментарий
Лучший ответ

Здравствуйте.

Для получения корректного значения либо реализуйте свою функцию для подсчета минут, либо доработайте уже используемую.

Вы отметили, что работаете в версии 7.12, а на текущий момент актуальна версия 7.14.4. Поэтому попробуйте развернуть тестовое приложение прямо с сайта terrasoft и посмотреть в его конфигурации не вносились ли изменения/исправления в используемую Вами функцию. Возможно, что описываемая проблема уже решена в более поздних версиях.

Здравствуйте.

Для получения корректного значения либо реализуйте свою функцию для подсчета минут, либо доработайте уже используемую.

Вы отметили, что работаете в версии 7.12, а на текущий момент актуальна версия 7.14.4. Поэтому попробуйте развернуть тестовое приложение прямо с сайта terrasoft и посмотреть в его конфигурации не вносились ли изменения/исправления в используемую Вами функцию. Возможно, что описываемая проблема уже решена в более поздних версиях.

Показать все комментарии

Добрый день, коллеги!

Набросал небольшой процесс, который позволяет на выходе получить следующий рабочий день после указанного по выбранному календарю.

На вход процесса нужно подать дату и календарь.

Можно использовать в качестве подпроцесса в своих процессах.

Прикрепленные файлы

Нравится

Поделиться

1 комментарий

Здравствуйте, Руслан.

Возможно, будет удобнее выложить данное решение на marketplace, так как на community в ленте не всегда можно быстро найти нужный пост?

Показать все комментарии

Реализовал разделение календаря по сотрудникам в фильтре через кучу diff. Встал вопрос - как наполнить каждый разными данными?
По умолчанию activityCollection планировщика указан как ScheduleGridData. Соответственно, на каждый календарь на странице создаю ScheduleGridData0, ScheduleGridData1, ScheduleGridData2 и так далее и подставляю эти значения в каждый activityCollection, но календари становятся вообще пустыми. Я так понимаю, вопрос в методах отрисовки, но тогда придется переписывать половину CRM.
Подскажите, как каждый календарик наполнить своим содержимым или что нужно изменить?

Вот пример одного из календарей

{
            "operation": "insert",
            "name": "Schedule0",
            "parentName": "DataViewsContainer",
            "propertyName": "items",
            "values": {
                 "id": "ActivitySectionV2Scheduler0",
                 "selectors": {"wrapEl": "#ActivitySectionV2Scheduler0"},
                 "itemType": Terrasoft.ViewItemType.SCHEDULE_EDIT,
                 "visible": {"bindTo": "isSchedulerVisible0"},
                 "startHour": Terrasoft.SysSettings.cachedSettings.SchedulerTimingStart,
                 "displayStartHour": Terrasoft.SysSettings.cachedSettings.SchedulerDisplayTimingStart + "-00",
                 "dueHour": Terrasoft.SysSettings.cachedSettings.SchedulerTimingEnd,
                 "timeScale": {"bindTo": "getTimeScale"},
                 "period": {"bindTo": "getSchedulerPeriod"},
                 "timezone": [{}],
                 "startDate": null,
                 "dueDate": null,
	         "activityCollection": {"bindTo": "ScheduleGridData0"},
                 "selectedItems": {"bindTo": "SelectedRows"},
                 "changeSelectedItems": {"bindTo": "onChangeSelectedItems"},
                 "scheduleItemDoubleClick": {"bindTo": "onScheduleItemDoubleClick"},
                 "scheduleItemTitleMouseOver": {"bindTo": "scheduleItemTitleMouseOver"},
                 "scheduleItemTitleClick": {"bindTo": "scheduleItemTitleClick"},
                 "change": {"bindTo": "changeScheduleItem"},
                 "selection": {"bindTo": "SchedulerSelection"},
                 "floatingItemsCollection": {"bindTo": "SchedulerFloatItemsCollection"},
                 "selectionKeyPress": {bindTo: "onSelectionKeyPress"},
                 "floatingItemReady": {"bindTo": "onFloatingItemReady"},
                 "selectionKeyPressSymbols": {"bindTo": "SchedulerSelectionPressedKeys"},
                 "itemBindingConfig": {
                     "itemId": {"bindTo": "Id"},
                     "title": {"bindTo": "getScheduleItemTitle"},
                     "changeTitle": {"bindTo": "onTitleChanged"},
                     "startDate": {"bindTo": "StartDate"},
                     "changeStartDate": {"bindTo": "onStartDateChanged"},
                     "dueDate": {"bindTo": "DueDate"},
                     "changeDueDate": {"bindTo": "onDueDateChanged"},
                     "status": {"bindTo": "getScheduleItemStatus"},
                     "changeStatus": {"bindTo": "onStatusChanged"},
                     "background": {"bindTo": "Background"},
                     "fontColor": {"bindTo": "FontColor"},
                     "isBold": {"bindTo": "IsBold"},
                     "isItalic": {"bindTo": "IsItalic"},
                     "isUnderline": {"bindTo": "IsUnderline"},
                     "markerValue": {"bindTo": "getScheduleItemHint"}
                   },
                   "floatingItemBindingConfig": {
                        "caption": {"bindTo": "getSimpleModuleCaption"},
                        "width": {"bindTo": "getSimpleModuleWidth"}
                   }
}

 

Нравится

1 комментарий

Смотрите, как реализовано расписание для нескольких пользователей в дополнении «Advanced schedule for bpm'online». 

Показать все комментарии

Добрый вечер, сейчас встала необходимость размножить  календарь на странице активностей, чтобы в каждом отображался только один сотрудник (то есть, допустим, в фильтрах 3 сотрудника - значит, выводится 3 разных календаря) С системой работал, но сейчас встал на общем понимании того, как это сделать - изучение кода родителей не помогло.
Подскажите, пожалуйста, хотя бы в 2-3 строчках, общую идею куда копать чтобы это реализовать, заранее огромное спасибо!

Нравится

2 комментария
Лучший ответ

Если я правильно вас понял легче вам будет создать какую то печатную форму (для каждого сотрудника с отдельной страницы его расписание) или экспортировать в эксель расписание для каждого сотрудника.

 

 

Возможно вам будут полезны эти приложения 1 2 3 доступные на меркетплэйсе

 

Если я правильно вас понял легче вам будет создать какую то печатную форму (для каждого сотрудника с отдельной страницы его расписание) или экспортировать в эксель расписание для каждого сотрудника.

 

 

Возможно вам будут полезны эти приложения 1 2 3 доступные на меркетплэйсе

 

В первом, Advanced schedule for bpm'online, как раз есть то, что Вы хотите:

Дополнение платное, но есть «тест-драйв», можно установить и посмотреть, как оно сделано.

Показать все комментарии

Добрый день!

Создал процесс который создает в календаре задачу и выставляет ей  начало и завершение на ближайшее свободное время в календаре. При попытке проверить отсутствие задачи начало и завершение сравниваются с датами, хотя в условиях стоит фильтр сравнения с датой и временем

Нравится

2 комментария

По умолчанию при добавлении фильтра по колонке «Дата/Время» не учитывается время. Необходимо в параметрах элемента «Читать данные» дополнительно проставлять признак «Учитывать время в фильтре» (изначально стоит false).

Показать все комментарии