Структура
Общая часть
Используя ЭИС можно перенести структуру БО, СО, Панелей, Справочников и Процессов.
1 этап - подготовка экспорта
Валидация
При подготовке экспорта происходит валидации выбранных БО, на возможность экспорта. Для структуры происходит проверка на наличие кодов в:
- самом БО
- печатных формах
- динамических полях
- виджетах
- табах
- в опциях выпадающего списка (dropdown single) и одиночного выбора (radio button group)
- в пунктах опросника
Зависимости
На данный момент существуют 3 виде структурных зависимостей
- БО являющийся частью Составного объекта (СО)
- Вложенные БО (2 уровня)
- Справочник, на который ссылается выпадающий список
2 этап - экспорт
Основной класс
StructureRegister
Основной метод
BoStruct exportBoStructure(String boId, ExportStructRefManager refManager, AuthUserInfo authInfo)
Основные модели
BoStruct
BoFieldStruct
Во время 2 этапа происходит формирование структур, в качестве идентификаторов используются коды.
3 этап - подготовка импорта (анализ импорта)
Основные классы
StructureImportAnalyzer
Потенциальные ошибки анализа импорта
- Несоответствие типов БО
-
Если во время анализа был найден БО по коду, но с другим типом, то возникает эта ошибка.
Пример возникновения, из тестового сервера был выгружен СО с кодом "Client", а на прод-среде был найден Справочник с таким же кодом. - Несоответствие типов бизнес-полей
-
Если во время анализа был найден БО по коду с идентичным типом, происходит проверка совместимости бизнес-полей, если было найдено
поле по коду, но с иным типом то выйдет эта ошибка
Пример возникновения: из тестового сервера был выгружен БО с полем Текстовое поле с кодом "name", а на прод среде по этому коду был найдено поле с типом Почта
- Изменения уникальности поля
- Если во время анализа был найден БО по коду с идентичным типом, происходит проверка совместимости бизнес-полей, если было найдено поле по коду c таким же типом, но с разными настройками уникальности, то возникает эта ошибка.
- Отсутствие БО для СО
- Эта ошибка возникает, если для импортируемого СО не был найден составной БО ни в системе, ни в импорте.
- Отсутствие нужного БО для бизнес-поля с типом "Вложенный объект"
- Эта ошибка возникает, если для бизнес-поля импортируемого БO не был найден БО ни в системе, ни в импорте.
В ходе анализа помимо валидации собираются данные для отображения на клиенте. Для структуры это
- Новое название БО
- Новые поля
- Измененные поля
- Новые вкладки в контекстном меню
- Новые виджеты
- Измененные виджеты
Идентификаторы
Во время 3 этапа собираются идентификаторы для сохранения в 4 этапе. Так например, если импортируемый БО не был найден в системе то он будет сохранен с идентификатором с поля id класса BoStruct. Если же БО был найден в системе по коду, то произойдет слияние структуры из импорта и системы.