Приложение для отображения дерева использования таблиц/моделей в Hana view

Иногда view или таблица вызывается во множестве других view. Если такую модель (или таблицу) необходимо модифицировать, появляется потребность отслеживания зависимостей объектов друг от друга.

Я сделал не большое приложение, которое строит дерево использования объекта с низу в верх.

Принцип реализации

Что бы получить зависимые объекты необходимо вызвать view «SYS».»OBJECT_DEPENDENCIES» со следующими фильтрами.

Данный способ хорошо работает, но он возвращает только зависимые объекты с глубиной 2.

В ABAP этот вызов у меня выглядит так.

Единица в селекте означает уровень вложенности. (ZCL_SQL_EXECUTOR)

Что бы получить все дерево использования объекта устраиваем каскадный поиск по принципу ренж таблицы.

Данный вариант реализации работает относительно быстро даже при больших наборах данных.

По итогу каскадного поиска во внутренней таблице result_tree будут данные напоминающие по структуре граф.

Могут быть случаи когда к одному и тому же объекту ведут разные пути. Что бы построить дерево определим однозначные пути в графе. Если такие случаи попадаются, я добавляю к ним символ @ и порядковый номер.

На этом этапе можно строить дерево.

Результаты работы, вывелось дерево зависимостей для таблицы SFLIGHT в моей системе

Исходный код

Полный исходный код можно найти по ссылке.

Для установки приложения необходимо скопировать и вставить код, создать экран 100, добавить статус и активировать.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *