Как мигрировать данные из любой системы в Directum RX без потери информации и нервов?

14 2

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

* * *

"Развитие человечества похоже на цифровой документооборот: мы все время что-то создаем, согласовываем, утверждаем, но в итоге все равно оказываемся в тупике с кучей ненужных файлов." 

© Из подготовки резолюции Directum Intelligence

На протяжении времени человечество развилось и от традиционного общества мы шагнули к постиндустриальному. Сперва у нас был камень, после появилась бумага и со временем мы её оцифровали. Освоив высокие информационные технологии, на пути к совершенству мы шагнули от 1С к Directum RX.

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

* * *

"Ура! Directum RX уже у нас, полет нормальный!" — воскликнули вы, закончив установку системы. В большинстве своем структура справочной информации может сильно отличаться от принятой объектной модели Directum RX. И вот проблема: пользователи ряда систем привыкли, что у одного документа может быть несколько независимых друг от друга тел, при этом нет основного тела. И в новой системе они хотят видеть подобное.

 

Что же мы можем сказать заказчику по этому поводу?!


 

Никогда не предугадаешь, что захочет увидеть заказчик в системе по итогу. Но чаще всего первое, с чем сталкивается подрядчик — это миграция исторических данных.

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


 

Чем же так хороши буферные справочники?

  • Принцип реализации. С точки зрения реализации метода загрузки в систему Directum RX определенного подхода нет. Действуем, как обусловились с заказчиком: если есть специалисты поддержки старой системы — лучший вариант сервис интеграции, а если их нет — соберём пепелац из того что есть.
  • Экономия времени. Достаточно один раз провести миграцию данных в систему, и в дальнейшем можно использовать бэкапы. При реализации обработки и трансформации можно поиграть с различными подходами для достижения быстрой конвертации в конечные объекты RX.
  • Сохранение данных. Как же неприятно потерять информацию из-за неправильной миграции! С буферными справочниками вы можете быть спокойны — все ваши ценные данные будут сохранены в целости и сохранности. Даже если система источник окажется закрытой, все данные уже будут храниться в новой системе.
  • Гибкость и удобство. Буферные справочники — это настоящий инструмент для мастера на все руки. Вы можете настроить их под свои нужды, добавить необходимые поля и изменить структуру данных. Особенно больно бывает при миграции документов, 1000 реквизитов — а таблица у нас одна! Часть данных мы можем оставить в справочниках для дальнейшего пользования информации, без дублирования в карточку документа. Если доступ к информации потребуется не сразу, можно конвертировать элементы справочника в объекты RX по запросу (может 9 000 000 документов из 9 000 001 никогда и не потребуются).

Немного о реализации

Смеркалось. Заказчик скинул описание структуры мигрируемых данных. В зависимости от описанного типа сущности создаём свой буферный справочник. Под каждый тип справочника делаем свой фоновый процесс, который обрабатывает записи буферных справочников. Для каждого фонового процесса делаем параметры с ограничением диапазона загружаемых данных (можно через константы), ведь с порциями удобнее работать, и их можно параллелить. Создаем документы, справочники, задачи (возможно изменяем), обрабатываем связи, выдачу прав. В общем берём поллитра (Минздрав предупреждает) и понеслась…


 

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


 

Номер – это номер версии файла.

Версия – тут может храниться адрес, а при желании Base64.

Номер файла – тут в целом понятно.

Наименование файла – имя.

Расширение – для удобства идентификации расширения версии.

Комментарий к версии – по необходимости.

Ну и признак успешности обработки.

Далее опишем алгоритм создания таких версий.

  1. Создаем документ и наследуем его от Sungero.Content.ElectronicDocument. Назовем его «Файл».
  2. Создадим новый тип связи и при добавлении файла связываем документы.


 

  1. Для основного документа на форму вынесем StateView для быстрого доступа к связанным файлам. И вот наш «Сплит» уже под рукой и видны все его альтер-эго.


 

  1. Не забываем про выдачу прав на такие файлы.

И по итогу получаем карточку мигрированного документа(справочника, задачи).


 

Что и следовало ожидать, с буферными справочниками миграция Directum RX проходит как по маслу! Такие же манипуляции можно провернуть и для заданий, истории согласований и изменений, а так же любой другой жизненно важной для клиента информации. И вот перед нами счастливый пользователь замечательной системы, будто и не переезжали на новую платформу.


 

Ну а если вдруг что-то пошло не так, то специалисты компании АрмаДок всегда могут прийти на помощь!

Удачи! ))

14
Авторизуйтесь, чтобы оценить материал.
4
Алексей Присяжный

А не пробовали в качестве промежуточного хранилища информации табличку на 3 столбца - ид, тип и здоровенный JSON со всеми данными экземпляра объекта (если бинарники не тащим)?

StateView / сторонний контрол (с 4.9) позволяет аналогично показывать что угодно, но меньше возни с созданием промежуточных таблиц

Алексей Присяжный: обновлено 13.11.2024 в 11:00
Денис Коновалов

Алексей. Нет, лично не пробовал, но спасибо за идею)

Авторизуйтесь, чтобы написать комментарий