{"id":14105,"url":"\/distributions\/14105\/click?bit=1&hash=4201b25a9ddf163999b7db664b1d3f2c8307af5d30c361a57efbd89507028a25","title":"\u0411\u043e\u043b\u044c\u0448\u0435 \u043d\u0438\u043a\u0430\u043a\u0438\u0445 SMS-\u043e\u043a \u0441 \u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u043e\u0433\u043e \u043d\u043e\u043c\u0435\u0440\u0430","buttonText":"\u041d\u0430\u043a\u043e\u043d\u0435\u0446-\u0442\u043e!","imageUuid":"c6224873-77c4-55ba-bfb9-45c478067544"}

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

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

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

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

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

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

Одной из базовых сущностей в системе «Атач» является документ. На скриншоте пользовательского интерфейса, согласно 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 сделать гифками с выделением значимых частей-со смартфона очень не читаемые картинки получились

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

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

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

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

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

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

Ответить
Развернуть ветку
1 комментарий
Раскрывать всегда
null