В крупных холдингах, включающих в себя большое количество территориально распределенных организаций, каждая из которых имеет свою отдельную систему DIRECTUM, и взаимодействующих в рамках автоматизированных бизнес-процессов, довольно остро встает вопрос о поддержании данной экосистемы в целостном и рабочем состоянии. Необходимо постоянно следить за корректностью настроек и поддерживать идентичность нормативно справочных данных в справочниках каждой системы. А в случае с очередным обновлением прикладной разработки повсеместно возможны различные виды ошибок: начиная от утерянных/не полученных пакетов разработки, не установленных компонент и заканчивая путаницей - что и в каком порядке ставить. И трудозатраты администраторов растут в геометрической прогрессии с увеличением числа сопровождаемых систем DIRECTUM в холдинге.
Для решения описанных проблем мы разработали техническое решение, призванное облегчить жизнь администраторам DIRECTUM и сократить издержки компаний на сопровождение.
Техническое решение представляет собой несколько отдельных модулей, каждый из которых направлен на решение определенной задачи:
Обмен данными между системой DIRECTUM главной организации и системами DIRECTUM дочерних организаций в процессе работы каждого модуля обеспечивает отдельный модуль взаимодействия с внешними системами, являющийся ключевым звеном в работе всего решения.
Основной компонентой данного модуля является справочник Пакеты для взаимодействия с внешними системами, записи которого содержат входную и выходную информацию всех остальных модулей решения.
Обработка пакетов выполняется периодически запускаемым прикладным сценарием. В зависимости от статуса и типа пакета сценарий выполняет действия по отправке или обработке в соответствие с заданной прикладной логикой.
Передача данных между системами осуществляет с помощью стандартных веб-сервисов DIRECTUM по защищенному https-соединению.
При передаче больших объемов данных, которые могут образоваться в рамках процесса распространения прикладной разработки, механизм выполняет архивирование и дробление содержимого на части, а их хранение и передачу осуществляет в виде записей справочника Части пакетов. В этом случае, в записи справочника Пакеты для взаимодействия с внешними системами содержатся лишь метаданные объектов, а их содержимое - в связанных записях справочника Части пакета.
При успешной обработке входящего пакета система-получатель выполняет отправку ответного служебного сообщения в систему-отправителя.
В случае возникновения каких-либо сбоев при передаче и обработке модуль формирует уведомления для локальных администраторов систем с детальной информацией по каждой ошибке.
Данный модуль покрывает задачи автоматической установки пакетов прикладной разработки в системы наших клиентов, а также дальнейшего централизованного распространения этих пакетов разработки в системы дочерних организаций. Благодаря модульной архитектуре всего решения модуль доступен для установки отдельно и может использоваться даже в небольших организациях с одной системой DIRECTUM.
Сборка пакетов прикладной разработки в нашей компании выполняется с помощью отдельного прикладного решения, которое позволяет создавать к каждому пакету набор метаданных, содержащих информацию:
Благодаря данному модулю, администратор системы осуществляет импорт переданного пакета разработки с помощью всего одного сценария, который загружает содержимое пакета разработки вместе с метаданными в отдельный справочник – Пакеты разработки, и инициирует запуск типового маршрута для установки и настройки всех компонент.
В рамках прохождения типового маршрута, в соответствие с заданными параметрами в метаданных пакета разработки, администратору системы могут отправляться задания по предварительной настройке системы до установки компонент пакета и настройке после завершения установки.
Перед установкой выполняется проверка статуса всех пакетов разработки, которые были указаны разработчиком в зависимостях текущего пакета, и до тех пор, пока они не будут установлены - установка текущего пакета не будет запущена. Настройка зависимостей для пакетов и их проверка позволяет разработчикам при ведении параллельной разработки выстраивать последовательность передачи прикладной разработки, а администраторам не запутаться в огромном потоке пакетов.
Установка компонент, входящих в состав пакета разработки выполняется с помощью автоматического последовательного запуска (в не визуальном режиме) утилиты импорта разработки DIRECTUM (IS-Builder Development Transfer Environment или SBDte) и стандартных сценариев импорта компонент DIRECTUM, которые были немного модифицированы для записи результатов работы в общий лог. Перед импортом разработки также выполняется автоматическое создание резервной копии разработки, а в случае возникновения ошибок при импорте компонент администратору системы отправляется задание, содержащие подробную информацию о возникших ошибках. Проанализировав ошибки, администратор может запустить повторную установку компонент, которые не были установлены, или выполнить автоматическое восстановление предыдущей версии разработки из созданной резервной копии.
Данное решение поддерживает работу в системах с серверами репликации, и при их наличии, после установки компонент пакета разработки на главном сервере, автоматически запускает подзадачу по установке компонент для каждого вторичного сервера.
В случае холдинга с несколькими системами DIRECTUM, по завершению установки пакета разработки администратор системы главной организации с помощью справочника Журнал распространения пакетов разработки может выполнить рассылку в системы дочерних организаций, приложив сопроводительную бизнес-документацию (подробное описание всех изменений в системе, пользовательские инструкции и т. д.). Для отправляемых пакетов разработки можно задать приоритет установки во внешних системах:
Мониторинг состояния установки пакетов разработки осуществляется на закладке «Системы» по значению реквизита Статус установки для каждой организации:
По завершению установки во всех системах дочерних организаций, администратор системы главной организации получает соответствующее уведомление.
Настройка констант для централизованного управления выполняется в справочнике Настройки систем DIRECTUM, путем создания отдельных записей для каждой константы, значения которых необходимо мониторить, и в случае необходимости, корректировать из системы главной организации.
Создав несколько записей, и тем самым сформировав список централизованных констант, выполняется запрос на получение текущих значений по каждой из констант во все системы дочерних организаций. При получении ответного пакета от каждой дочерней организации в системе главной организации в справочнике Настройки систем DIRECTUM создается еще одна запись для каждой централизованной константы со значением реквизита Организация, соответствующая той организации, откуда было получено значение.
В справочнике, по умолчанию, включена группировка по реквизиту Организация, что позволяет просматривать все значения констант в разрезе организации, к которой они относятся.
Изменение значений констант для каждой организации, осуществляется через специальный диалог из справочника Настройки систем DIRECTUM в системе главной организации. Для удобного изменения значений констант, содержащих коды записей справочника, при настройке константы можно задать соответствующий справочник, и в дальнейшем указывать значения путем выбора записей из заданного справочника.
Помимо изменения значения константы для конкретной организации, доступна возможность одним действием установить единое значения выбранной константы для нескольких организаций или всех организаций разом.
Решение отслеживает все изменения централизованных констант со стороны локальных администраторов в системах дочерних организаций и отправляет уведомление для администратора главной системы, содержащее информацию о предыдущем и новом значениях. Это позволяет своевременно реагировать, в случае установки некорректных настроек.
Настройка НСИ осуществляется с помощью справочника - Справочники НСИ и доступна исключительно только в системе главной организации (в дочерних организациях все действия с данным справочником заблокированы). При создании новой записи задается справочник и перечень его реквизитов, которые будут синхронизироваться между системами главной и дочерних организаций.
После того как настройка для нового справочника НСИ выполнена, она отправляется во все системы дочерних организаций. По завершению обработки полученных настроек справочника НСИ для пользователей дочерних систем становится недоступны создание/удаление записей справочников, а также редактирование синхронизируемых реквизитов. Блокировка осуществляется с помощью нашего технического решения Настройка доступности реквизитов/действий в документах и справочниках, которое органично вписалось в данный модуль.
Системы дочерних организации после успешного принятия настроек НСИ отправляет ответное сообщение, фиксируемое в системе главной организации, в записи настроек справочника НСИ, на закладке «Системы».
Как только из всех систем будет получено подтверждение принятия настроек запускается первичная рассылка всех записей справочника и последующая периодическая рассылка изменений.
При изменении состава синхронизируемых реквизитов табличный раздел «Системы» очищается и обмен данными по данному справочнику приостанавливается до повторного получения обновленных настроек всеми системами дочерних организаций.
В случае удаления записи настроек, во все системы дочерних организаций отправляется сообщение, которое отменяет все ранее установленные модулем НСИ блокировки в справочнике и тот вновь становится доступным для локальных действий (создание/изменение/удаление записей).
Обсудите реализацию с экспертом Directum
Авторизуйтесь, чтобы написать комментарий