Решение для импорта и экспорта данных в Directum RX

до 50%

сокращение трудозатрат на миграцию

1500

записей в минуту скорость переноса данных

XML, JSON, Excel, SQL

поддерживаемые структурированные форматы

Задача

Зачастую на проектах внедрения решаются вопросы загрузки и выгрузки документов и записей справочников, которые возникают в рамках процессов интеграции и миграции данных Directum RX с внешними системами. В каждом отдельном случае для передачи метаданных могут использоваться различные структурированные форматы: XML, JSON и Excel файлы, а также SQL-таблицы и представления (Views).

Опыт, полученный на реализованных проектах, направил на мысль – разработать универсальное настраиваемое решение для Directum RX, которое бы перекрывало все кейсы, связанные с первичной миграцией исторических данных, и позволило бы оптимизировать время выполнения поставленных задач перед командами внедрения.

Архитектура решения

Разработанное решение позволяет выполнять загрузку и выгрузку данных в/из Directum RX, взаимодействуя с различными источниками (XML, JSON, Excel, SQL) и используя общие механизмы логирования и обработки.

Рисунок 1. Архитектура решения

Все решение спроектировано так, чтобы работа с ним была интуитивно понятна, проста и комфортна, а настройка могла осуществляться любым специалистом команды внедрения. Предусмотрено множество различных проверок, которые оповещают пользователей, в случае некорректно заполненных параметров, что минимизирует вероятность совершения ошибок на этапе настройки.

Настройка импорта/экспорта

Для осуществления импорта и экспорта данных необходимо выполнить настройку следующих справочников:

  • Ресурсы данных;
  • Настройки соотношения данных.

Настройка ресурсов данных

Справочник Ресурсы данных предназначен для хранения источников данных, используемых для загрузки и выгрузки сущностей и значений их свойств.

При настройке ресурса указывается:

  • Тип ресурса: XML, JSON, Excel или SQL;
  • Направление: импорт или экспорт;
  • Тип обработки: последовательная, одной транзакцией или параллельная.

Табличная часть «Параметры подключения» заполняется предопределенным набором свойств, зависящим от выбранного формата данных. Для проверки корректности параметров подключения к указанному ресурсу и его доступность предусмотрена возможность валидации данных с помощью действия - Проверить подключение:

  • Если настройка корректна и ресурс доступен, то отобразится сообщение – «Подключение успешно установлено»;
  • Если настройка некорректна или ресурс недоступен, то отобразится соответствующий текст ошибки.

Рисунок 2. Карточка записи справочника Ресурсы данных

Настройка соотношения данных

Справочник Настройки соотношения данных предназначен для настройки сопоставления свойств объектов Directum RX и внешних ресурсов данных при импорте или экспорте.

При настройке указывается ресурс данных (из ранее созданных записей справочника Ресурсы данных), раздел ресурса данных (путь до нужного элемента, XMLPath, имя листа или таблицы в БД – в зависимости от используемого формата данных), выбирается Тип объекта Directum (сущность, с которой предполагается осуществление действий) и направление (импорт/экспорт).

На вкладке «Соотношение данных» сопоставляются поля внешнего источника данных с полями в системе Directum RX. По умолчанию таблица заполняется автоматически обязательными свойствами объекта, указанного в свойстве Тип объекта Directum. В случае отсутствия обязательных свойств в источнике данных, для них можно задать значение по умолчанию, которое будет использоваться для заполнения свойства при импорте данных объектов.

Рисунок 3. Окно заполнения параметров соотношения данных

Для свойств, являющихся ссылками на записи справочников, используется дополнительная настройка Поиск по. Она позволяет задать свойство связанного справочника, по которому будет осуществляться поиск соответствующей записи в нем.

Среди настраиваемых свойств необходимо отметить то, которое будет использоваться в качестве ключевого идентификатора для определения уникальности объекта. При этом доступно использование нескольких свойств в качестве составного ключа (например, ИНН + КПП).

Для проверки корректности заполнения табличной части «Соотношение данных» предусмотрена возможность валидации данных. В случае неверного заполнения значений выводится сообщение с соответствующим пояснительным текстом, и запуск процесса импорта и экспорта данных блокируется.

При наличии логических свойств или свойств-перечислений, имеющих разные значения во внешней системе и Directum RX (например, «true/false» во внешней системе и «да/нет» в Directum RX), в решении предусмотрена возможность конвертации данных при помощи специальных обработчиков, хранящихся в служебном справочнике Правила преобразования. В состав модуля включены правила преобразования, охватывающие наиболее часто используемые кейсы: работу с логическими свойствами, перечислениями, поиск по ФИО, ИНН и КПП. При необходимости с помощью прикладной разработки имеется возможность доработать уже существующий обработчик или создать новый.

Для фильтрации набора данных при загрузке или выгрузке (например, требуется загрузить только сотрудников определенного подразделения из общей выгрузки) предусмотрена настройка условий фильтрации, позволяющая задать свойство, его значение и условие фильтрации: равно, не равно, больше, меньше и т. д. В этом случае набор выгружаемых/загружаемых данных будет отфильтрован в соответствие с заданными критериями.

Рисунок 4. Вкладка «Соотношение данных» карточки записи справочника Настройки соотношения данных

Процесс обработки данных

Инициация процесса импорта/экспорта данных выполняется в справочнике Настройки соотношения данных. В начале выполняется подготовка данных к обработке, которая включает:

  1. Подключение к источнику данных, согласно заданным параметрам, которые определяются в справочнике Ресурсы данных;
  2. Создание записей справочника Очередь обработки, содержащих набор данных для импорта/экспорта, согласно настроенному соотношению данных в текущей записи справочника Настройки соотношения данных.

Рисунок 5. Карточка записи справочника Очередь обработки

Количество создаваемых записей зависит от настроенного типа обработки для ресурса данных:

  • Для вариантов «Одной транзакцией» или «Последовательно» создается одна запись справочника Очередь обработки;
  • Для варианта «Параллельный» на каждый импортируемый объект создается отдельная запись справочника Очередь обработки.

Рисунок 6. Справочник Очередь обработки

Всем созданным записям в справочнике Очередь обработки присваивается начальный статус «Ожидание».

Обработка записей в справочнике Очередь обработки выполняется фоновым процессом параллельно в несколько потоков/процессов. В ходе обработки перед началом импорта/экспорта Статус обработки изменяется сначала на «Обработка», а по завершению — на «Обработан», с простановкой результата обработки: «Успешно» или «Ошибка».

Рисунок 7. Статусы обработки

Табличная часть «История обработки» агрегирует сведения о завершенных итерациях обработки данных, включая информацию о возникших ошибках. При необходимости после исправления причины возникновения ошибки запись справочника Очередь обработки может быть повторно отправлена в обработку посредством действия Рестарт обработки.

Для просмотра списка импортированных/экспортированных сущностей на панели действий доступна кнопка Список объектов Directum.

Результаты применения решения

Разработка решения «Импорт и экспорт данных» позволила стандартизировать типовые задачи загрузки и выгрузки данных в рамках процессов межсистемного взаимодействия.

В настоящее время модуль активно используется на нескольких проектах. Сейчас «Импорт и экспорт данных» — это поддержка четырех самых популярных структурированных форматов (XML, JSON, Excel, SQL) уже из «коробки», полный перенос 1500 записей в минуту и сокращение трудозатрат на задачи миграции данных до 50%.

Перспективы развития

В будущих версиях решения планируется:

  • Реализовать возможность работы с веб-сервисами внешних систем, путем отправки GET/POST запросов для передачи и получения данных;
  • Добавить поддержку гибкой настройки произвольных шаблонов/структур для используемых форматов;
  • Выполнить оптимизацию скорости обработки данных для сокращения загрузки больших объемов исторических данных.

Состав команды проекта

  • Зайцев Денис, ведущий разработчик.
  • Волошин Александр, ведущий разработчик.
  • Топчий Антон, разработчик.
  • Логинов Павел, разработчик.
  • Дорфман Данил, ведущий системный аналитик. 
  • Кириллов Артур, системный аналитик.
  • Муравьёв Денис, консультант.
  • Вдовин Руслан, рецензент-консультант.
  • Машлаков Антон, руководитель проекта.
  • Николаев Николай, руководитель отдела разработки, внутренний заказчик проекта.
Пока комментариев нет.
Авторизуйтесь, чтобы написать комментарий

У вас похожая задача?

Обсудите реализацию с экспертом Directum

Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле
Обязательное поле

Благодарим за интерес! Мы свяжемся с вами.

Directum Awards 2024
Какой проект лучше?
Авторизуйтесь, чтобы оценить материал.
Авторизуйтесь, чтобы оценить материал.
Directum Awards 2024
Спасибо за активность!
Ваш голос принят