Настройка порта «Дерево»

В окне настройки необходимо настроить соответствие между Входным и Выходным деревом. Для создания и редактирования структуры дерева используются команды панели инструментов или контекстного меню.

Панель инструментов и контекстное меню списка Входное дерево содержит команды:

  • Получить список — выводит список всех уникальных значений поля. Максимальное количество уникальных значений в списке: 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 в дерево — при автоматическом создании дерева.
  • Объединение(дерево) — всегда.
  • Слияние(дерево) — все узлы, кроме корневого узла присоединяемого дерева или первого уровня узлов присоединяемого дерева, если пропускается корневой узел.
Новости, материалы по аналитике, кейсы применения, активное сообщество