Статей и кейсов по No-Code много, сегодня этим мало кого можно удивить, но что, если пойти чуть дальше и вместо использования готовых механизмов создать свои собственные.
Было бы неплохо, если бы форму документа можно было бы компоновать так же, как и схему No-Code задачи и подстроить ее под свои задачи...
Минуточку! Сейчас Вы скажете, что такое уже есть в коробке и будете правы, но лишь отчасти. Функционал настройки представлений позволяет управлять видимостью свойств на форме без услуг разработчика.
-Hello, Directum 5. На этом, собственно, пока и все.
А еще в Directum 5 был такой замечательный функционал, как Мастер действий, который позволял разбить старт какого-нибудь процесса на ряд понятных шагов.
А что, если попробовать скрестить Мастер действий и настройку представлений !?
Звучит как минимум интересно.
Что представляет из себя решение "Тут должно быть какое-то название, но мы его пока не придумали" !?
Если коротко, то это своего рода No-Code конструктор, который позволяет собрать из имеющихся свойств новый вид документа, адаптированный под индивидуальные потребности и ситуации без использования услуг прикладного разработчика. Другими словами, если нужен вид документа с определенными свойствами, его можно создать в пару тройку кликом мышкой.
Так же можно задать заполнение свойств значениями по умолчанию или настроить необходимые проверки.
Само решение состоит из всего 4-х компонент:
Примечание:
При желании, количество поддерживаемых типов документов можно расширить и делается это не сложно, силами прикладного разработчика. No-Code задачу так же можно заменить, если в этом есть необходимость.
Изначально, данное решение не планировалось в качестве самостоятельного и является основой процессов более крупного решения КЭДО для гос. органов. В связи с чем, на скриншотах и в описании, я буду показывать работу решения именно в рамках процессов КЭДО (заявления, отпуска, командировки).
В начале я предлагаю посмотреть, как работает механизм создания документа и старта задачи, а потом мы перейдем к самому интересному, настройке.
Пользователь заходит на обложку модуля и нажимает на ссылку "Оформить заявление".
Пример варианта обложки модуля.
После чего, ему показывается диалог, где он должен сразу выбрать "Вид документа" или сначала выбрать "Жизненную ситуацию", а затем один из отфильтрованных "Видов документа".
Примечание: "Жизненная ситуация" - это адаптация по процессы КЭДО и она реализована отдельным справочником с возможность создать любую ситуацию и привязать к ней необходимые виды документов.
Пример пустого диалога создания документа.
Например, если пользовать выберет вид документа "Заявление на перевод на другую должность граж/службы", то диалог поменяется, добавятся новые поля, а поле "Дата с" будет предзаполнено датой.
Пример диалога создания для настроенного вида документа.
После того, как пользователь заполнит все необходимые поля
Пример диалога создания для настроенного вида документа.
он нажимает на кнопку "Создать" и перед ним появляется окно старта задачи.
Пример карточки No-Code задачи.
После проверки документа пользователь нажимает кнопку "Отправить", документ автоматически подписывается и направляется в работу.
И все!
Пара простых шагов со стороны пользователя и документ создан, версия сформирована по шаблону, подписана и отправлена.
А что еще пользователям нужно!?
Давайте заглянем за фасад и посмотрим, а как же эта простота настраивается.
Для настройки процесса создания документа был разработан отдельный настроечный справочник "Настройки документов".
Давайте на примере того же вида документа "Заявление на перевод на другую должность граж/службы" рассмотрим функциональные возможности справочника, а также назначения свойств этих настроек.
Основная страница "Свойства", карточки записи справочника "Настройки документов".
Страница "Свойства" записи справочника "Настройки документов".
"Тип документа" и "Виды документов" - позволяют настроить для какого типа и видов документов будет доступна эта настройка.
В свойстве "Тип документа" доступны не все типы документов системы, а лишь те, что добавлены разработчиком программно, благо много сил и времени это не занимает.
"Состояние" - тут по классике, влияет на доступность данной настройки и имеет два состояния "Действующая" и "Закрытая".
"Шаблон документа" - в данном свойстве указывается шаблон документа, по которому будет формироваться версия документа.
"Диалог открывает" - имеет три состояния "Задачу", "Документ", "Действие не требуется" и указывает на то, какое действие будет выполнено по окончанию работы диалога создания документа.
Вариант "Задача" - открывает No-Code задачу.
Вариант "Документ" - открывает карточку документа.
Вариант "Действие не требуется" - как следует из названия, не выполняет никаких действий. Этот вариант необходим для встраивания диалога создания документов в какие-то процессы или варианты выполнения заданий, когда открывать что-либо не требуется, а нужно получить готовый документ и продолжить выполнять действия процесса. Например, создание приказа в задании по созданию приказа.
"Приказ" - данное свойство связывает текущую настройку документа с настройкой приказа, который должен быть создан по окончанию обработки документа. Например, если после согласования заявления необходимо подготовить соответствующий приказ, то заполнив это свойство настройкой приказа и вытащив в задаче соответствующий блок задания на схему, пользователю не придется совершать лишних действий, все необходимые данные передадутся в диалог создания документа автоматически.
"Классификаторы должностей", "Должности", "Наши организации", "Подразделения" - эта группа свойств позволяет задать доступность текущей настройки для разных сотрудников. Например, у руководителей подразделений другая форма документа, а документы конкретного вида имеют право создавать только руководители организаций. Ситуации могут быть разными.
Что касается свойства "Классификаторы должностей", то это адаптация для госов.
Страница "Настройка формы", карточки записи справочника "Настройки документов".
Страница "Настройка формы" записи справочника "Настройки документов".
Коллекция "Свойства формы" - данная коллекция позволяет управлять набором свойств, который доступен для указанных видов документов. Этот же набор свойств будет доступен и в карточке созданного документа.
Коллекция "Параметры проверки данных" - данная коллекция позволяет задать условия проверки вводимых данных.
Группа "Формат наименования документа" - позволяет задать формат наименования документа используя заданные в коллекции "Свойства формы" свойства, а также ряд базовых не редактируемых свойств документа, таких как "Рег. №", "Наша орг.", "Подразделение" и т.д.
Формат наименования документа задается в диалоге, который вызывается по ссылке "* Задать формат".
Для свойств доступны приведения к регистрам, склонения, а также форматы даты и времени.
Пример диалога задания формата наименования документа.
Страница "Настройка диалога", карточки записи справочника "Настройки документов".
Страница "Настройка диалога" записи справочника "Настройки документов".
Коллекция "Свойства диалога" - данная коллекция позволяет настроить формат отображения диалога создания документа.
Коллекция "Инструкция" - данная коллекция позволяет задать текстовые инструкции для сотрудников.
Страница "Приложения", карточки записи справочника "Настройки документов".
Страница "Приложения" записи справочника "Настройки документов".
Коллекция "Настройка приложений" - данная коллекция позволяет настроить список приложений, которые необходимо прикладывать к документу, при его создании.
Страница "Задача", карточки записи справочника "Настройки документов".
Данная вкладка отображается для настройки только если в вкладке "Свойства" в поле "Диалог открывает" выбран вариант "Задачу".
Страница "Задача" записи справочника "Настройки документов".
"Требовать подпись при старте задачи" - позволяет настроить подписание документа.
Группа "Формат темы задачи" - выполняет такую же функцию, как и группа "Формат наименования документа", только задает не имя документа, а тему задачи.
Группа "Формат сводки по документу" - выполняет схожую функцию, как и группа "Формат наименования документа" и позволяет отобразить в задаче важную информацию по документу.
Поскольку в предыдущем блоке мы затронули тему настройки задачи, то давайте уделим пару слов и ей.
Сама задача реализована на No-Code и по мимо блоков адаптированных под процессы КЭДО, так же имеет набор универсальных блоков.
Все блоки реализованы максимально универсально, чтобы их можно было настроить под разные ситуации без привлечения разработчика.
Примеры настроек некоторых No-Code блоков задачи.
Поскольку задача, это вещь скорее желательная, чем обязательная и может быть заменена на любой другой процесс, то подробно останавливаться и описывать реализацию No-Code процессов я не буду. Да и речь сейчас идет о прикладном No-Code, а не коробочном.
1) Добавление поддержки нового типа документа занимает около 30 минут времени прикладного разработчика, а может и того меньше. Это без учета в создания самого типа, его свойств, инициализации и прочих сопутствующих работ.
2) Новые свойства в типах документах добавляются за пару минут. Добавил свойство или коллекцию, вынес его на форму, добавил наименование свойства в соответствующий список (пока так), опубликовал с инициализацией и все. Свойство появляется в настройках и с ним можно работать.
3) Функциональные возможности настройки диалога позволяют создать некое подобие мастера действий, если свойств у документа слишком много или их нужно отобразить на разных страницах сгруппировав по какому-то признаку.
Пример шагов диалога при создании служебной записки на командировку.
4) Выше я написал, что диалог поддерживает работу с коллекциями (с единственным свойством-ссылкой). Да, все так, генерация соответствующих элементов диалога происходит автоматически.
5) Возможности настройки параметров проверки, позволяют довольно гибко из без усилий настраивать различные комбинации проверок.
Пример работы условия проверки данных.
Ну а если Вы умеете работать с регулярными выражениями, то это открывает еще больший спектр возможностей.
Ну а теперь о грустном, чего решение делать не умеет, ну или пока что не умеет.
1) Решение разработано на базе Directum RX 4.6, поэтому переименование свойств документа в карточке пока что не доступно.
2) Отсутствует механизм заполнения свойства из связанных свойств. Примеры: при заполнении ведущего документа, заполнить "Дату с" датой из этого документа, или при заполнении двух дат, заполнить "Продолжительность" разницей этих дат.
3) Решение не умеет генерировать в диалоге коллекции, с двумя и более свойствами.
4) Решение не умеет генерировать в диалоге коллекции, с единственным свойством, отличным от свойства-ссылки.
5) В некоторых информационных сообщениях диалогах не хватает информативности.
Тут перечислены текущие основные ограничения решения.
В самом ближайшем будущем развитие решения продолжится, а значит возможности настроек будут расширяться.
Изначально, это решение было придумано в целью облегчения разработки разнообразных и разношёрстных заявлений решения для КЭДО, но по мере проектирования и расширения функциональных возможностей, выяснилось, что оно отлично ложится на все пользовательские процессы, где может быть много разных видов документов с различным реквизитным составом и требуется возможность настройки этих видов документов.
Сейчас это решение экономит достаточно много времени при разработке новых процессов. К примеру, процесс по командировкам (с заявлениями, продлениями, отменой и т.д.) был реализован за три рабочих дня, вместо запланированных двух недель. Да, день или два потом ушли на проработку нюансов в процессах, но такие аспекты есть практически везде.
P.S. Будет ли этот механизм выделен в отдельное техническое решение (вместе с задачей) или в качестве шаблона разработки, вопрос сейчас находится на обсуждении внутри компании.
Автор идеи и разработчик - Беляков Сергей Александрович
Опубликовано:
7 февраля в 08:39
Обсудите реализацию с экспертом Directum