Описание взаимодействия с API модуля "Сервис уведомлений"
Обработку входящих событий выполняет "Служба регистрации событий уведомлений" (экземпляр класса DocsVision.NotificationService.WorkerExtension.Services.NotificationServiceEventHandlerService).
Интерфейсы логических сервисов
Логические сервисы могут использоваться для создания и изменения объектов и выполнения основных операций модуля.
-
INotificationCardService— сервис работы с карточками. Используется для создания карточек модуля и некоторых других обращений. -
INotificationEventRegistrationService— сервис регистрации событий уведомлений. Используется для создания запросов на формирование уведомлений. -
INotificationSendService— сервис отправки подготовленных уведомлений. Используется для создания запросов на отправку подготовленных уведомлений. -
INotificationService— сервис обработки входящих событий уведомлений. Используется для подготовки экземпляров уведомлений по входящим данным события и/или источника. -
IScheduleService— сервис работы с расписанием. Используется для управления расписанием и вычисления даты наступления события.
Расширения Службы фоновых операций
WorkerTaskFactory — основное расширение модуля. Регистрирует сервисы Службы фоновых операций для обработки определённых событий. Расширение сообщает Службе фоновых операций, какому сервису передать обработку входящего сообщения. Интерфейс IMessageDescriptionProvider отвечает за локализацию названия сервиса, событий и описания в консоли (без его поддержки вместо названия сервиса и события указывается ID, а в описании строковый вид EventArgs).
Регистрация события
Событие представляет собой особую запись в карточке сообщения, которую Служба фоновых операций определяет как "Запрос на подготовку уведомления" для определённой карточки.
Событие регистрируется в системе вызовом INotificationEventRegistrationService.RegisterEvent(EventId, ObjectId) или INotificationEventRegistrationService.RegisterEvent(ObjectId), где:
-
EventId— известный идентификатор события; -
ObjectId— идентификатор карточки-источника уведомления.
Чтобы создать событие, следует выполнить вызов метода в ходе работы в системе, например в скрипте карточки или бизнес-процесса. Идентификаторы стандартных известных событий записаны в классе DocsVision.NotificationService.ObjectModel.Constants.RefNotificationEvents. В справочник событий можно добавлять собственные события. Идентификатор события хранится в соответствующей колонке таблицы событий уведомлений.
Событие может быть определённым (если известен идентификатор события и карточка), или неопределённым (если известна только карточка). Для неопределённого события сервис выбирает наиболее подходящую запись из справочника событий, исходя из типа, вида и состояния карточки-источника. Рекомендуется регистрировать только определённые события.
Создание рассылки по расписанию
Рассылка по расписанию представляет собой последовательность запланированных событий, которые Служба фоновых операций определяет как "Исполнение события по расписанию". Обработку запланированных событий выполняет Сервис обработки периодических событий (экземпляр класса DocsVision.NotificationService.WorkerExtension.Services.ScheduleEventHandlerService). Также он выполняет запуск и остановку расписаний.