Об идее, пришедшей нам во время выполнения одного из проектов, я писал
в конце прошлого года. Задумка довольно быстро превратилась в полноценный и работающий прототип. Первые версии были нами опробованы на «подопытных» клиентах и реализуемых в то время проектах. Результаты были признаны вполне успешными, что и послужило основной
причиной выпуска технического решения в качестве полноценного коммерческого продукта.
Сегодня мы объявляем о выходе третьей версии, о новшествах и возможностях которой я расскажу в этой статье.
Цели и задачи
Напомню, что послужило предпосылками появления этого решения.
- В папках проводника DIRECTUM жестко ограничен список реквизитов, которые можно вывести в колонки.
А ведь так часто возникает необходимость работать с организацией, номером или датой документа. Да любыми другими реквизитами, в зависимости от типа карточки.
Отсюда появилось одно из основных требований к решению – возможность вывести в колонки списка произвольный реквизит. Причем, по этому реквизиту должна работать и фильтрация, и сортировка списка документов, аналогично проводнику DIRECTUM.
- Необходимость ручного ведения в DIRECTUM дерева папок для классификации документов. Кому-то нужно создавать из них иерархии и «раскладывать» документы в определенные подпапки. А после этого еще и поддерживать эту структуру в актуальном состоянии. Конечно,
такой подход уже морально устарел и отнимает много времени на технические действия. Ситуацию немного спасают папки поиска, но реализуемое с их помощью дерево с вынужденным дублированием папок оказалось не особо удобным в работе:
Отсюда появилось второе требование – в зависимости от прав доступа пользователя,
документы должны автоматически отображаться в настроенном представлении и распределяться по динамически построенной иерархии (виртуальному дереву папок).
- Низкая скорость работы поиска в DIRECTUM. Проблема в том, что если по запросу пользователя будет найдено большое количество документов, то все они будут довольно долго отрисовываться у него в окне результатов поиска. Но зачем показывать пользователю такое
количество документов, если он все равно не сможет среди них найти нужный и будет вынужден корректировать запрос?
Так появилось требование существенно сократить время поиска. Это означало, что
поисковая выдача должна работать постранично, а в соответствии с последними тенденциями –
автоподгрузкой содержимого при пролистывании. Приемлемое время поиска и построения иерархии на архиве с 1 млн. документов – 2-3 секунды.
А также ряд вытекающих отсюда требований: возможность добавлять произвольные действия с документами в контекстное меню, способствовать выявлению некорректно заполненных документов, и некоторые другие.
Реализация и возможности
В DIRECTUM существует, пожалуй, только один способ, который позволял выполнить такую задачу – обложка папки. Все возможности тут ограничены лишь знаниями HTML и JavaScript. Забегая вперед, скажу, что пришлось хорошенько поработать как в прикладной разработке,
так и над оптимизацией SQL-запросов. Иначе решение не получилось бы таким быстрым и удобным.
Помимо обложки, в решение входит настроечный справочник, с помощью которого задаются параметры доступных пользователям автоклассификаторов и их представлений. А взаимодействие обложки с базой данных выполняется посредством вспомогательных сценариев DIRECTUM.
Работа осуществляется через выделенную папку, на которую администратором настраивается обложка решения. Впрочем, папка может быть и не одна – для различных архивов можно создать отдельные папки, чтобы не смешивать все представления в одной и управлять доступом.
В примечании папки можно ограничить список доступных представлений и указать классификатор, открываемый по умолчанию:
В обложке пользователь может выбрать доступные ему представления (классификаторы). Открыв нужное представление, можно работать как со всем списком документов, который выводится после открытия, так и воспользоваться автоматически сформированной иерархией
папок:
По кнопке «Настройка колонок» можно добавлять и убирать реквизиты документов, выводимые в колонках обложки. По всем реквизитам можно осуществлять поиск с помощью фильтров и управлять сортировкой:
Настроенные в каждом классификаторе список колонок, их ширина и направления сортировок сохраняются для каждого пользователя. Контекстное меню дублирует привычное контекстное меню проводника DIRECTUM, и в целом, переход между проводником и обложкой становится
для многих пользователей малозаметным. В контекстное меню могут быть добавлены произвольные действия:
Настройка решения
Настройка доступных классификаторов выполняется в отдельном справочнике
Настройки архивов документов. Для каждого представления задаются:
- Список типов карточек документов, которые будут отображаться в классификаторе.
- Настраивается дерево иерархии. Количество уровней не ограничено, и в качестве любого из них может быть также задан вычисляемый реквизит.
- Выбираются реквизиты, которые будут доступны пользователям для вывода на обложке. Реквизиты могут быть реальные и вычисляемые.
- Пользователям выдаются права доступа на созданный классификатор.
Что нового
В третьей версии мы произвели достаточно много изменений. Фактически, переписали заново многие блоки, используя замечания от работы с первыми версиями. Самые существенные изменения:
- Работа обложки была значительно ускорена. Как я уже говорил выше, построение дерева и вывод результатов поиска из 1 млн. документов теперь занимает всего несколько секунд. Для достижения такого результата пришлось применить целый комплекс мер:
- Первая версия обложки разрабатывалась с использованием Bootstrap, что позволило довольно быстро разработать прототип решения, но в текущей версии было принято решение отказаться от данного фреймворка и использовать только библиотеку jQuery.
- Отказались мы также и от использования JSON и XML, как связующего звена. Было найдено нестандартное и очень быстрое решение – формирование основной HTML разметки непосредственно в SQL-запросе.
- Реализовали постраничный вывод результатов поиска с автоматической подгрузкой документов.
- Добавлена возможность настройки и вывода в качестве колонок и папок дерева вычисляемых реквизитов. Например, чтобы можно было вывести значение реквизита из связанного справочника, или составить общее значение из нескольких значений других реквизитов – чтобы
не модифицировать для этого карточки документов и даже вывести пользователя, у которого документ «висит» на согласовании.
- Изменен дизайн обложки. Оформление было максимально адаптировано под привычный интерфейс DIRECTUM.
- Реализована возможность работы с реквизитами типа «текст», в том числе сортировка и поиск по этим реквизитам.
- Реализовано сохранение пользовательских настроек внешнего вида обложки: выбранные колонки, их ширина и направления сортировки теперь сохраняются и при последующем открытии подгружается настроенный вид обложки.
В заключение
Решение Автоклассификаторы архива документов предоставляет удобный вспомогательный механизм для качественного повышения скорости и возможностей работы с электронными архивами в DIRECTUM.
Особенно актуально это решение будет для работы с большими архивами, невозможной без структуризации документов и быстрого интуитивного поиска по ним.
Предлагаем воспользоваться данным решением всем клиентам и партнерам DIRECTUM при автоматизации работы с различными архивами документов.
По техническим вопросам работы решения можно связаться со мной
напрямую.
Круто!
Пощупать бы ещё это решение изнутри
Авторизуйтесь, чтобы написать комментарий