Копировать ссылку на страницу

В системе DIRECTUM существует возможность интеграции данных задач, заданий и уведомлений с событиями календарей Microsoft Outlook. Подробнее см. раздел «Интеграция с календарями Microsoft Outlook».

Возможность интеграции задач, заданий и уведомлений с календарями Microsoft Outlook настраивается администратором системы. Подробнее см. раздел «Интеграция с календарями MS Outlook». Существуют следующие варианты:

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

В системе DIRECTUM есть возможность программно выполнить действия с календарями Microsoft Outlook:

создать событие календаря Microsoft Outlook с данными задачи, задания или уведомления DIRECTUM;
удалить событие календаря Microsoft Outlook с данными задачи, задания или уведомления DIRECTUM;
посмотреть информацию по событию календаря Microsoft Outlook с данными задачи, задания или уведомления DIRECTUM;
посмотреть, какие события календарей Microsoft Outlook созданы для конкретного пользователя;
и т.д.

При программной работе с календарями Microsoft Outlook используется системный справочник с кодом CALENDAR_EVENTS. Справочник не имеет представления. Данные справочника хранятся в таблице SBCalendarEvents. Подробнее см. раздел «SBCalendarEvents – связей между объектами системы DIRECTUM и календарями Microsoft Outlook».

Пример

Постановка задачи

В календаре Microsoft Outlook существует событие, созданное из задания DIRECTUM. В системе существует еще одно задание, логически связанное с первым. Необходимо установить связь события календаря Microsoft Outlook и со вторым заданием.

Программный код

 

 // FirstJobID - ИД исходного задания.

 // SecondJobID - ИД задания-продолжения.

 

 // Получить ИД и код текущего пользователя.

 UserName = Application.Connection.UserName

 UserID = ServiceFactory.GetUserByName(CurrentUserName).ID

 UserCode = ServiceFactory.GetUserByName(CurrentUserName).Code

 

 // Получить набор данных системного справочника События календарей.

 Reference = References.SYSREF_CALENDAR_EVENTS.GetComponent()

 

 // Установить ограничение по типу объектов «Задание».

 AddWhere1 = Format("%s.%s = '%s'"; ArrayOf(Reference.TableName; 

   Reference.Requisites('ObjectKind').SQLFieldName; 'J'))

 Reference.AddWhere(AddWhere1)

 

 // Установить ограничение по текущему пользователю системы.

 AddWhere2 = Format("%s.%s = '%s'"; ArrayOf(Reference.TableName; 

   Reference.Requisites('User').SQLFieldName; UserID))

 Reference.AddWhere(AddWhere2)

 

 // Установить ограничение по ИД первого задания.

 AddWhere3 = Format("%s.%s = '%s'"; ArrayOf(Reference.TableName; 

   Reference.Requisites('ObjectID').SQLFieldName; FirstJobID))

 AddWhere3ID = Reference.AddWhere(AddWhere3)

 

 // Найти событие, связанное с первым заданием.

 Reference.Open

 Reference.First

 // Получить ИД события из реквизита ИД события (EventID).

 CalendarEventID = Reference.EventID

 Reference.Close

 

 // Удалить ограничение по ИД первого задания.

 Reference.DelWhere(AddWhere3ID)

 

 // Установить ограничение по ИД второго задания.

 AddWhere3 = Format("%s.%s = '%s'"; ArrayOf(Reference.TableName; 

   Reference.Requisites('ObjectID').SQLFieldName; SecondJobID))

 AddWhere3ID = Reference.AddWhere(AddWhere3)

 

 // Удалить все события, связанные со вторым заданием.

 // Т.к. с одним заданием может быть связано только одно

 // событие календаря

 Reference.Open

 while not Reference.EOF

   Reference.Delete

 endwhile

 Reference.Close

 

 // Создать запись справочника для второго задания.

 Record = References.SYSREF_CALENDAR_EVENTS.CreateNew()

 

 // Заполнить значения реквизитов.

 Record.ObjectID = SecondJobID

 Record.ObjectKind = "Задание"

 Record.User = UserCode 

 Record.CalendarType = "Outlook"

 Record.EventID = CalendarEventID  

 Record.Save

© 2016 Компания DIRECTUM Сообщество пользователей DIRECTUM