{"id":13590,"url":"\/distributions\/13590\/click?bit=1&hash=03c45bd9f120d2c4307c8a83d2e290e4193e2d7cfbf2807f3e8cf799cc81b1a0","title":"\u0421\u0434\u0435\u043b\u0430\u0442\u044c \u0431\u043b\u0430\u0433\u043e\u0442\u0432\u043e\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 \u0434\u0435\u043d\u044c\u0433\u0438 \u043a\u0440\u0443\u043f\u043d\u043e\u0439 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438","buttonText":"\u041a\u0430\u043a?","imageUuid":"629d35eb-0db2-5643-b6f7-bd3a6714a6eb","isPaidAndBannersEnabled":false}
Атач.Разработка

Гибкость и вариативность настройки СЭД «Атач» посредством использования триггеров на уровне веб-приложения

Триггеры на уровне веб-приложения предназначены для дополнения базовых обработчиков кастомной логикой без вмешательства в ядро системы.

Представленный в данной статье подход позволяет выполнять определенные действия на пользовательские события (изменение состояний компонентов/элементов), при условии, что состав и последовательность этих действий вариативны.

Богданов Артур
Инженер-программист

Составляющие интерфейса СЭД «Атач»

«Атач» – российская система по управлению бизнес-процессами электронного документооборота и корпоративных коммуникаций, которая позволяет автоматизировать весь спектр задач по работе с документами – создание, согласование, подписание, выдачу поручений и контроль их исполнения.

Одной из базовых сущностей в системе «Атач» является документ. На скриншоте пользовательского интерфейса, согласно 3-х колоночной концепции, расположены следующие блоки (в соответствии с рисунком 1):

  • слева расположена панель задач;
  • по центру – карточка документа;
  • на правой панели – маршрут текущего документа.
Рисунок 1 – Пользовательский интерфейс СЭД «Атач»

Составными частями карточек и маршрутов документов являются компоненты и элементы. Примеры компонентов выделены оранжевыми линиями, элементы обозначены красными (в соответствии с рисунком 2).

Рисунок 2 – Элементы и компоненты СЭД «Атач»

К элементам относятся кнопки, текстовые поля, выпадающие списки, детали маршрута и т.п., а компоненты предназначены для группировки элементов.

Триггеры на уровне веб-приложения в СЭД «Атач»

Концептуальная схема отражает вызов триггеров на пользовательские события (в соответствии с рисунком 3).

Рисунок 3 – Вызов триггеров на пользовательские события

В качестве типов пользовательских событий могут выступать стандартные OnClick, OnCreate, OnUpdate, OnDelete, или относящиеся к предметной области – вход в группу маршрута, выход из группы, вход в шаг маршрута, выход с шага. Конкретное событие вызывает определенный обработчик. Чаще всего триггеры вызываются из базовых обработчиков, но это необязательное условие, точка входа может быть любой. Далее, в обработчике, согласно логике конкретного бизнес-процесса, вызываются триггеры с определённым типом события.

Триггеры на уровне кода – это вложенные обработчики, команды которых наследуются от общего интерфейса, идентифицируются атрибутом.

[Trigger(Domain.Enums.Action.DocumentWasCreated)] public class DocumentWasCreatedCommand : IRequest, ITrigger { public DocumentWasCreatedCommand() { } }

На конкретный компонент или элемент может быть установлено неопределенное количество триггеров с различным типом пользовательских действий и приоритетом выполнения, за счет этого и достигается условие вариативного состава и последовательности действий (в соответствии с рисунком 4).

Рисунок 4 – Триггеры на элементах

На схеме БД отражена связь между триггерами и элементами (в соответствии с рисунком 5). Для компонентов схема аналогична.

Рисунок 5 – Триггеры на элементах в БД

Заключение

Дополнение базовых обработчиков кастомной логикой без вмешательства в ядро системы позволило достичь высокого уровня гибкости и вариативности настройки СЭД «Атач». Немаловажные преимущества данного подхода – возможность делегирования разработки триггеров другим командам (в том числе, на стороне заказчика) и высокий уровень повторного использования кода.

0
4 комментария
Алла Очеретяная

Интересный подход!
Пожелание автору-схемы 2 и 4 сделать гифками с выделением значимых частей-со смартфона очень не читаемые картинки получились

Ответить
Развернуть ветку
Михаил Эпштейн

Как настоящий программист, автор и работает на компьютере и пишет статьи для просмотра с него же)

Ответить
Развернуть ветку
Артур Богданов

На самом деле, это действительно сложная задача, сделать подобные схемы удобочитаемыми и на смартфонах.

Ответить
Развернуть ветку
Артур Богданов

Спасибо, учту. В дальнейшем вся графика будет согласовываться с нашим дизайнером.

Ответить
Развернуть ветку
Читать все 4 комментария
null