Одной из задач, возникшей в ходе работы со спецификой медицинского страхования, стала необходимость автоматизации и оптимизации функциональности периодических поручений. В DIRECTUM 5.х он был частью стандартного функционала, но не реализован в Directum RX.
Задача носила высокий приоритет, т.к. большая часть этих поручений формировались непосредственно по приказам и распоряжениям директора, а значит, требовала обязательного и своевременного доведения до исполнителя, и фактически выполняла функцию контроля «передачи» важной информации от одних сотрудников к другим. Цена человеческой ошибки в данном случае была слишком высока, и оставлять решение этой задачи за человеком, а не за системой было бы слишком рискованно.
Общее число действующих шаблонов, которое было требовалось перенести в новую систему составило 407 шт.
По типам периода они распределялись так
Карточка справочника «Шаблоны поручений» в DIRECTUM 5 состояла из 4 вкладок со следующими блоками параметров (см. рис.1):
Рисунок 1. Вкладки «Расписание» и «Параметры» карточки справочника «Шаблоны поручений» в старой системе
На этапе анализа было выявлено, что Заказчика путает обилие параметров в блоке определения периода запуска на вкладке «Расписание», и одни и те же настройки им часто выполняются по-разному.
Например, необходимость формирования периодического поручения 1 раз в год 15 января на карточке шаблона он мог задать тремя разными способами (см. рис.2):
Рисунок 2. Пример разных способов указания Заказчиком одной и той же настройки в старой системе
Также случалось, что, не сумев определить, как правильно задать несколько точек запуска (дат) на карточке одного шаблона, сотрудник просто копированием создавал несколько однотипных записей по одному поручению. Например, чтобы обозначить необходимость формирования периодического поручения в начале и в середине каждого месяца он создавал сразу две записи с типом периода = «Ежемесячно» и указанием следующих параметров: повторять каждое 1 и 16 число месяца соответственно (см. рис.3).
Рисунок 3. Пример создания нескольких однотипных записей по одному поручению в старой системе
Кроме того, при настройке шаблонов периодических поручений сотрудники заказчика не использовали относительные параметры, например, повторять в 1-й (2-ой, посл. и т.д.) понедельник каждого месяца. Т.е. все настройки периодов запуска имели четкую привязку к дням недели и числам месяца.
Отдельно были проанализированы шаблоны с типом периода «Произвольный» и выяснилось, что точки запуска (даты), заданные в их табличных частях на вкладке «График» тоже не являются хаотичными и их можно повторить, используя оставшиеся 4 типа периода.
Таким образом, было сделано 2 ключевых вывода:
Поскольку реализация данной задачи была ограничена не только временными рамками самого проекта, но и общим объемов часов модификаций, для ее решения ориентир был взят на максимальное соблюдение принципов Low-code и No-code. Версия системы Directum RX 4.7 позволяла это сделать.
Визуальная форма карточки справочника «Шаблоны периодического поручения» была полностью настроена с использованием представлений форм.
Причем, по итогу первых демонстраций решения Заказчику она претерпела еще несколько изменений: менялось расположение полей на форме относительно друг друга, вносились корректировки в их локализацию. Целью было – сделать, чтобы расположение полей на карточке шаблона в новой системе стало максимально логичным и понятным.
В конечном счете, из четырех вкладок этого же справочника из старой системы в новую попали только две: блок определения периода запуска (вкладка «Расписание») и блок определения параметров поручения (вкладка «Параметры») (см. рис.4).
По просьбе пользователей также была скорректирована схема варианта процесса для типа задачи «Задача на исполнение поручения» (см. рис.5), по которой производится запуск периодических поручений:
Рисунок 4. Реализованная карточка справочника «Шаблоны периодических поручений» в новой системе
Рисунок 5. Конечная схема варианта процесса для типа задачи «Задача на исполнение поручения»
Полученное в результате решение оформлено как отдельное, в новый модуль разработки, и состоит из 3 элементов:
Как уже упоминалось выше, форма карточки справочника «Шаблоны периодических поручений» содержит 2 блока параметров, объединенных на одной форме (см. рис.4):
Состав полей, порядок и наименование параметров первого блока сделан максимально похожим на стандартную карточку задачи на исполнение поручения для того, чтобы Заказчик сразу понимал какие именно поля и куда попадут в момент автоматического формирования поручения по данному шаблону.
Из 5 типов периода второго блока параметров в новой системе осталось только 4: «Ежедневный», «Еженедельный», «Ежемесячный», «Ежегодный». И табличная часть данного блока видоизменяется, в зависимости от того, какое значение принимает параметр «Тип периода» (см. рис.6):
Рисунок 6. Видоизменение табличной части, в зависимости от значения параметра «Тип периода»
Точки запуска (даты) вычисляются системой автоматически на основании параметров «Тип периода», «Переносить с выходного», а также значений колонок «День недели», «Число месяца», «Месяц» и хранятся в колонке «Ближайшая дата запуска» табличной части шаблона (см. рис.5).
Причем в рамках одного шаблона можно задать сразу несколько точек запуска (дат), например, указав необходимость формирования периодического поручения 2 раза в месяц: 1-го и 16-го числа. Если ближайшая дата запуска попадает на выходной день, а значение параметра «Переносить с выходного дня» = «Назад» или «Вперед», то система автоматически переносит ее на предыдущий, либо первый рабочий день после выходных, соответственно, согласно производственного календаря.
Ежедневно в 06:30 выполняется запуск фонового процесса «Запуск периодических поручений», который запускает асинхронное событие. Система проверяет каждую запись справочника «Шаблоны периодических поручений», находит записи, у которых Состояние = «Действующая» и проверяет значение колонки «Ближайшая дата запуска» табличной части шаблона на равенство Текущей дате.
Если равенство истинно, то:
Если равенство ложное, то ФП переходит к другому шаблону далее по списку.
При необходимости, все эти ограничения могут быть легко нивелированы дальнейшим развитием решения, т.е. простым добавлением на форму карточки справочника «Шаблоныпериодических поручений» необходимых параметров/действий, а также проработкой прикладной логики.
Главным показателем качественно реализованной доработки стал тот факт, что перенос шаблонов периодических поручений был произведен Заказчиком самостоятельно, не прибегая к дополнительным консультациям по работе решения. Всего за 2 дня, опираясь всего лишь на ранее разработанную инструкцию, Заказчик смог самостоятельно перенести из старой системы в новую все шаблоны! В service desk не было зафиксировано ни единого вопроса по данному функционалу, что означает достижение ключевой цели – решение оказалось простым, понятным для Заказчика и полностью закрывает его потребности.
На сегодняшний день в системе Directum RX по шаблонам создано порядка 300 периодических поручений, а к концу года их число превысит 5 000!
В новой системе создавать шаблоны периодических поручений стало намного проще. По предварительным замерам в новой системе у Заказчика на 70% сократилось время на их настройку за счет:
Реализованный в рамках данного решения функционал может также быть интересен заказчикам с задачей автоматического формирования поручений по заранее обозначенному циклу.
Виктория Кока – Руководитель проекта
Около 6 лет работаю в сфере ИТ и давно слежу за развитием ряда платформ. Продукт DirectumRX – в их числе.
Еще с версии 4.6 я отметила для себя концепцию «No-code настройка в сочетании с Low-code разработкой», которую сейчас активно транслирует вендор, и буквально влюбилась в нее! На своих проектах там, где есть такая возможность, я пропагандирую ее использование. Ведь концепция «Low-code» – это не только простота и удобство настройки, но и дальнейшая возможность Заказчику практически безболезненно обновляться на новые версии, а значит быстрее других получать актуальный функционал.
Опубликовано:
29 марта в 17:44
Обсудите реализацию с экспертом Directum