mybpm!
Скачать в формате: PDF pdf DOCX word

Введение

Общая часть

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

Логически ЭИС разделен на 4 этапа

  1. Подготовка экспорта
  2. Экспорт
  3. Подготовка импорта (анализ импорта)
  4. Импорт

На данный момент используя ЭИС можно перенести следующие части системы:

Структура БО
Поддерживаются следующие типы БО: БО, CO, Панель, Справочник, Процессы. (17.07.23)
Поддерживаются следующие сущности: динамические поля, нативные поля, виджеты, контекстное меню, вкладки (табы), печатные формы, статичные ссылки (17.07.23)
Поддерживается перенос процессов (фигуры, блоки, выражения) (17.07.23)
Права доступа
Поддерживаются права на следующие сущности: сам БО, нативные поля, динамические поля, виджеты, табы (17.07.23)
Скрипты
Переносить можно лишь скрипты, имеющие рабочую версию, в противном случае выгрузка скриптов будет недоступна (17.07.23)

Подготовка экспорта

Основные классы

ExportStructRegister
AbstractDependencyWorker
ExportValidator

Основная коллекция

CompanyExportStruct

Основная логика

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

В случае возникновения ошибок во время валидации - экспорт невозможен.

Дополнительно

Максимальное количество ошибок, сгенерированных во время валидации прописано в конфиг-файле StructExportConfig

Экспорт

Основные классы

ExportStructRegister    
StructureRegister
StructAccessRightsRegister
ScriptsStructureRegister
StructStaticRefRegister
ProcessStructureRegister

После нажатия кнопки "Выгрузить" начинается процесс экспорта структуры. С коллекции CompanyExportStruct скачиваются все выбранные в 1 этапе БО и выбранные для экспорта части (структура, права, скрипты). Далее создаются структуры (java-классы, как правило, в названии имеют "Struct") хранящие в себе всю необходимую информацию для импорта. Основной моделью является CompanyStruct, которая переводится в json-формат посредством библиотеки jackson (через ObjectMapper). По итогу экспорта скачивается mybpm-файл.

Подготовка импорт (анализ импорта)

Основные классы

ImportStructRegisterImpl
AbstractImportAnalyzer
StructureRegister
StructAccessRightsRegister
ScriptsStructureRegister
StructStaticRefRegister
ProcessStructureRegister

Основная коллекция

ImportStructDto

После загрузки файла полученного во 2 этапе в другую компанию, начинается 3 этап - анализ импорта.

Во время анализа происходит следующее:

  1. Определяется возможность импортировать структуру из файла (валидация).
  2. Сбор необходимых данных для 4 этапа (идентификаторы для сохранения)
  3. Сбор информации о результате импорте для отображения пользователю (что создастся, что обновится и так далее)

Импорт

Основные классы

ImportStructRegisterImpl
StructFileRegister
StructureRegister
StructStaticRefRegister
ScriptsStructureRegister
StructAccessRightsRegister 
ImportStructureStrategy

Если же во время анализа не было обнаружено ошибок, то файл можно применить, другими словами начинается 4 этап - импорт.

В рамках этого этапа начинается создание DTO через кафку, идентификаторы для сохранения, как правило, определяются уже на 3 этапе.