Настройка порта «Дерево»
В окне настройки необходимо настроить соответствие между Входным и Выходным деревом. Для создания и редактирования структуры дерева используются команды панели инструментов или контекстного меню.
Панель инструментов и контекстное меню списка Входное дерево содержит команды:
Получить список — выводит список всех уникальных значений поля. Максимальное количество уникальных значений в списке: 10000.
Выбрать все — помечает все узлы.
Снять выделение со всех — снимает выделение со всех узлов.
Инвертировать выделение — меняет выбранные узлы на невыбранные и наоборот.
Добавить в исключенные — добавляет выделенные узлы дерева в группу Исключенные.
Для списка Выходное дерево на панели инструментов и в контекстном меню доступны команды:
Добавить дочерний узел — позволяет добавить к корневому узлу дочерний узел.
Добавить соседний узел — позволяет создать узел того же уровня иерархии, что и выбранный.
Редактировать... — позволяет вызвать окно редактирования и изменить значения полей для выбранного узла (команду также можно вызвать горячей клавишей F2).
Добавить в исключенные — работает аналогично кнопке во Входном дереве.
Переместить вверх и
Переместить вниз — позволяют менять порядок узлов, при этом корневой узел Root переместить нельзя (команды также доступны по комбинации горячих клавиш Ctrl+Up и Ctrl+Down соответственно).
Загрузить из XSD... — загружает структуру узлов выходного дерева из файла формата XSD.
Исключить корневой узел при публикации — при установленном флаге из REST и SOAP сообщений исключается корневой узел Дерева данных (по умолчанию опция отключена).
Синхронизировать поля — синхронизируется список Выходных узлов дерева порта со списком Входных (алгоритм синхронизации см. автоматическая синхронизация полей).
Автоматическая синхронизация — при включении данного режима команда
Синхронизировать поля будет выполняться автоматически при выполнении узла (включена по умолчанию).
Удалить — удаляет дочерний узел дерева, иконка этой команды высвечивается при наведении курсора на узел (команду также можно вызвать горячей клавишей Delete).
Удалить все... — удаляет все дочерние узлы (комбинация горячих клавиш Shift+Delete).
Примечание: Удалить корневой узел дерева нельзя.
При выполнении команд Добавить дочерний узел,
Добавить соседний узел,
Редактировать... вызывается окно редактирования параметров узла:
- Имя — название узла с учетом правил наименования:
- Может состоять из заглавных или строчных латинских букв, символов подчеркивания, цифр (цифра не может быть первым символом).
- В дереве уникальность имени узла должна соблюдаться в рамках отдельного уровня иерархии.
- Метка — произвольное описание узла дерева.
- Тип данных — один из возможных типов данных.
- Вид данных — один из возможных видов данных.
Кроме того, можно установить следующие признаки:
- Массив — при установке флага выбранный узел будет определен как упорядоченное множество(массив) данных одного типа/структуры.
- Контейнер — если флаг установлен,выбранный узел может содержать подчиненные узлы.
Перечень узлов Входного и Выходного деревьев можно отфильтровать с помощью команды Фильтрация на соответствующей панели инструментов.
Поиск – позволяет отметить узлы дерева по имени или его части.
Загрузка структуры узлов из XSD схемы
Структуру выходного дерева можно загрузить из файла формата XSD с помощью команды Загрузить из XSD...
В появившемся диалоговом окне необходимо заполнить поля:
- XSD файл — поле для выбора файла (не редактируемое).
- Пространство имен — выбор пространства имен из списка всех пространств имен описанных в файле XSD, ограничивает выбор корневого элемента только указанным пространством. По умолчанию принимает значение Все пространства имен.
- Корневой элемент — выбор корневого узла из списка в загруженном файле. По умолчанию имеет значение первого корневого узла выбранного файла.
- Глубина рекурсии — максимальное число рекурсий при раскрытии рекурсивных узлов. Выбирается в диапазоне от 0 до 3. По умолчанию равно 1, что означает: каждый рекурсивный узел будет раскрыт автоматически, но рекурсивные узлы внутри этих узлов останутся нераскрытыми. Дополнительно раскрытие рекурсивных узлов можно проводить вручную после построения дерева. При значении 0 все рекурсивные узлы не будут раскрыты автоматически.
После заполнения всех полей необходимо нажать кнопку Загрузить и XSD схема будет загружена для дальнейшей работы.
Сопоставление узлов дерева
Для сопоставления узлов Входного и Выходного дерева необходимо задать между ними связи. Это можно сделать нажав кнопку Связать автоматически. Входные и Выходные узлы будут связаны, если у них совпадают имена и тип данных. Связи также можно установить вручную, с помощью метода Drag-and-drop путем перетаскивания узла из левого списка на узел из правого списка. В этом случае имена полей не важны, однако типы данных должны совпадать.
Связи между узлами можно удалять:
- с помощью кнопки
Удалить все связи — удаляет все связи;
- нажатием на кнопку
на линии связи (при наведении курсора кнопка меняет вид на
).
Важно: Компонент будет выдавать ошибку при выходе со страницы настройки или при выполнении, если обязательному Выходному корневому узлу не сопоставлен Входной.
Список Исключенные учитывается при автосинхронизации:
- При добавлении сквозных узлов, если узел соответствует одному из элементов Исключенные, то он не добавляется в Выходное дерево данных.
- Если в списке выходных имеется несвязанный узел, который соответствует исключенному, то обязательный узел так и останется несвязанным в Выходном дереве, а необязательный будет удален.
Особенности работы с Исключенными узлами дерева
Исключение позволяет удалять узлы деревьев из набора данных, при этом не нарушая работу Автосинхронизации.
Примечание: Действие Добавить в исключенные доступно только в мастере настройки Выходных портов. Если все узлы дерева обязательные (выделены жирным шрифтом), то элементы интерфейса этого действия не отображаются, поскольку исключение недоступно для таких узлов.
- Исключенные узлы дерева в списке показываются курсивом в отдельной группе Исключенные.
- В группе Исключенные можно менять порядок узлов дерева и удалять их из группы.
- При выборе Исключенного узла дерева подсвечивается соответствующий ему Входной узел дерева.
- Нельзя добавить отсутствующий или потерянный узел дерева в группу Исключенные.
- При выполнении действия Связать автоматически не выполняется связывание исключенных Входных узлов дерева.
- Выходной узел дерева удаляется при добавлении в группу Исключенные:
- Входного узла дерева, связанного с Выходным узлом дерева
- Выходного узла дерева.
Нельзя добавить в группу исключенных узлов:
- Обязательный Входной узел дерева или Выходной узел дерева, связанный с обязательным Входным.
- Отнаследованный Выходной узел дерева или Входной узел дерева, связанный с отнаследованный выходным.
Обязательный узел — это узел, который был добавлен алгоритмом узла, либо параметры этого узла переопределены пользователем.
Отнаследованный — это узел дерева в Производном компоненте, который был унаследован от базового узла.
Примечание:
Узлы считаются необязательными если они были созданы в компонентах:
- JSON в дерево — при автоматическом создании дерева.
- Объединение(дерево) — всегда.
- Слияние(дерево) — все узлы, кроме корневого узла присоединяемого дерева или первого уровня узлов присоединяемого дерева, если пропускается корневой узел.