В системе DIRECTUM существует возможность интеграции данных задач, заданий и уведомлений с событиями календарей Microsoft Outlook. Подробнее см. раздел «Интеграция с календарями Microsoft Outlook».
Возможность интеграции задач, заданий и уведомлений с календарями Microsoft 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
© Компания DIRECTUM, 2018 | Сообщество пользователей DIRECTUM |