Вид "Поток данных"
Вид графа "Поток данных" позволяет отследить взаимное влияние (наличие связей) таблиц и атрибутов информационных систем друг на друга. Предполагается, что такие связи строятся линейно и не имеют зацикленности, а также есть набор типов активов имеющих между собой вложенные связи, идущие от верхнеуровневой информационной системы.
Примечание
В данной реализации у текущего актива цвет фона будет инвертироваться.
Использование тегов
Предполагается, что есть набор типов активов имеющих между собой вложенные связи, которые идут от информационной системы (ИС) на самом верху.
Типы активов на определенных уровнях вложенности могут быть помечены тегами "таблица" и "атрибут".
Пример: ИС → PG Table (таблица) → PG Column (атрибут) или ИС → PG schema → PG Table (таблица) → Group → PG Column (атрибут)
Предупреждение
Если у пользователя нет прав на какой-то из перечисленных типов активов, то проверить теги на таком типе актива будет невозможно - граф связей будет отображаться некорректно
Благодаря тегам появляются 2 уровня: уровень таблицы и уровень атрибутов, которые расставляются благодаря работе краулера.
Также теги могут быть добавлены вручную с помощью импорта модели типов активов.
Пример заполнения тегов в xml файле:
...
<assetType version="54" name="PgColumn" displayName="Postgres column" description="" icon="" color="#fccb00">
<simpleAttribute name="PgColumnName" displayName="Name" description="" readOnly="false" hidden="false" nullable="false" order="0" searchable="true" displayable="true" mainDisplayable="true" useAttributeNameForDisplay="false" simpleDataType="String" enumDataType="" linkDataType="" unique="false" searchMorphologically="false" searchCaseInsensitive="false" base="false" lookupEntityType=""/>
...
<tags name="category" value="attribute"/>
</assetType>
<assetType version="54" name="PgTable" displayName="Postgres table" description="" icon="" color="#db3e00">
<simpleAttribute name="PgTableName" displayName="Name" description="" readOnly="false" hidden="false" nullable="false" order="0" searchable="true" displayable="true" mainDisplayable="true" useAttributeNameForDisplay="false" simpleDataType="String" enumDataType="" linkDataType="" unique="false" searchMorphologically="false" searchCaseInsensitive="false" base="false" lookupEntityType=""/>
...
<tags name="category" value="table"/>
</assetType>
...
Теги доступны для просмотра в свойствах типа актива (Рисунок 1).

Рисунок 1 – Отображение тегов в свойствах типа актива
Отображение вида "Поток данных"
Вид графа "Поток данных" открывается по умолчанию для типов активов, помеченных тегами, и имеющими связи с информационными системами - в противном случае вид не доступен для отображения (Рисунок 2).
Главная особенность вида "Поток данных" – горизонтальное отображение связей слева направо (за исключением циклов связей). Для вида недоступны параметры графа: перемещение узлов, пользовательские шаблоны и построение пути связей.
При открытии актива уровня таблицы по умолчанию прогружаются связи, идущие от текущей таблицы к другим таблицам (транзитивно), а также вложенные связи от таблиц до информационных систем.
Если вложенные узлы графа имеют связи, то при сворачивании узла будет простроена ассоциативная связь (отображается пунктирной линией). Если узел имеет прямую и ассоциативную связь, то будет отображаться только прямая.
Примечания:
Уровень атрибутов для таблицы по умолчанию свернут.
Примечание
В версии 2.12 был переработан алгоритм построения потока. Некоторые потоки данных строились некорректно по причине того, что у актива могли быть вложенные активы сразу нескольких типов активов, которые были размечены как уровень таблицы физического слоя (Таблица и Представление) или несколько разных типов активов для уровня атрибутов (Атрибут и Проверочное ограничение). Такие случаи теперь учитываются в алгоритме построения потока и отображаются корректно (слева на право).

Рисунок 2 – Пример отображения графа вида "Поток данных"
Чтобы раскрыть уровень атрибутов:
Убедитесь, что выбран вид графа "Поток данных".
Наведите курсор на текущий узел графа (уровня таблицы) и нажмите кнопку меню
.
В меню отобразится список вложенных атрибутов текущей таблицы.
С помощью флагов выберите необходимые атрибуты для отображения.
Также будут отображены атрибуты, связанные (транзитивно) в других таблицах.
При открытии актива уровня атрибута по умолчанию прогружаются связи, идущие от текущего атрибута до других атрибутов (транзитивно), далее прогружаются вложенные связи от атрибутов до информационных систем.
Для активов уровня атрибутов меню раскрытия уровня атрибутов отсутствует.
На узлах информационных систем отображаются счетчики вложенных таблиц и атрибутов с количеством прогруженных в интерфейсе узлов (фактически на сервере может быть большее количество).
При необходимости нажмите кнопку
для загрузки дополнительных связей. При этом счетчик узлов может увеличиться.
Для переключения на укрупненный режим нажмите кнопку на панели справа, в результате чего произойдет автоматическое сворачивание/разворачивание всех информационных систем на графе.
Поток трансформации данных
Поток трансформации данных - это процесс преобразования данных из некоторой информационной системы.
Базовая модель трансформации содержит:
Типы активов:
default_transformation_container
- актив контейнера трансформации, содержащий одну или несколько трансформаций. В некоторый информационных системах называется задачей.default_transformation
- актив трансформации данных.default_transformation_port
- актив пора трансформации, использующийся как вход/выход для трансформации.
Типы связей:
default_transformation_flow
- тип связи для потока трансформации, использующаяся для связывания TransformationContainer.default_transformation_include
- тип связи (внутренняя) для включения трансформации в контейнер (TransformationContainer) и для включения портов трансформации в трансформацию.
Отображение трансформаций на графе
Чтобы отобразить поток трансформации на графе необходимо включить флаг "Загружать трансформации", расположенный в настройках отображения.
По умолчанию части графа, относящиеся к трансформациям, скрыты под искусственной логической связью (Рисунок 3). Конец такой связи обозначается пурпурным ромбиком.
По клику на ромбик разворачивается соответствующий блок узлов трансформации. После разворачивания логическая связь заменяется на реальные, и цвет ромбика становится серым (Рисунок 4).
В потоке данных на уровне атрибутов отображаются порты трансформации, которые могут быть связаны невложенными связями между собой и атрибутами.
Порты default_transformation_port
должны быть вложены в трансформации default_transformation
. Трансформации могут быть вложены в контейнеры трансформации (задачи) default_transformation_container
, а те в свою очередь, вложены в информационные системы (например, FormIt).
Таким образом порты ведут себя аналогично атрибутам, а трансформации аналогично таблицам. Порты, трансформации и контейнеры трансформаций размечаются соответствующими тегами в типе актива и относятся к физическому слою.
Через меню по кнопке доступен выбор отображения необходимых атрибутов с помощью галочек. Атрибуты, имеющие связи с трансформациями, обозначены пурпурным кружком.

Рисунок 3 – Пример отображения трансформаций со скрытой логической связью на графе вида "Поток данных"

Рисунок 4 – Пример отображения развернутого блока узлов трансформации на графе вида "Поток данных"
Раскрытие/скрытие элементов на графе
Поток данных может быть открыт для актива портов default_transformation_port
и актива трансформаций default_transformation
. При этом соответствующий текущему активу блок трансформации всегда открыт и не может быть скрыт (Рисунок 5). Флаг "Загружать трансформации" в настройках в этом случае всегда включен.
После раскрытия блока трансформации его можно скрыть, кликнув на серый ромбик, или через контекстное меню узла в блоке трансформации (вызывается кликом правой кнопкой мыши по имени узла).
По умолчанию узлы, относящиеся к трансформациям, окрашены в пурпурные цвета (Рисунок 6). При этом для соответствующих типов активов разрешено задавать цвета в модели типов активов и типов связей.
Когда поток данных открыт для актива уровня таблица, то уровень атрибутов может сворачиваться через меню . Поведение для портов и трансформаций при этом аналогично поведению для атрибутов и таблиц.
При этом связи трансформации могут отображаться транзитивными (отображаются пунктиром), блоки трансформации можно скрывать и раскрывать через ромбик на транзитивных связях. Для трансформаций доступно использование контрола для сворачивания узла.
Для типа актива, отмеченного тегом "Трансформация", есть атрибут script, который может хранить скрипт соответствующей трансформации. Он доступен через контекстное меню узла по кнопке "Показать скрипт".
При ручном раскрытии потока, в случае если есть обрывок цепочки трансформации, то групповая связь с ромбиком не будет отображаться, и этот кусок будет видим тогда, когда раскрыт родитель.
Связи на основной цепочке (т.е. на потоке, загруженном от текущего узла карточки) отображаются без прозрачности и более ярко (Рисунок 7).

Рисунок 5 – Пример отображения раскрытого блока трансформаций

Рисунок 6 – Пример отображения скрытого блока трансформаций

Рисунок 7 – Пример отображения связей основной цепочки