TABLES ABAP Декларация внутренних таблиц

Декларация внутренних таблиц ABAP используется почти в каждой SAP программе. Рассмотрим каждый из способов декларация внутренних таблиц в языке ABAP. Также рассматривается новый вариант определения, инлайновая декларация, появившуюся в версии ABAP 7.4. Внутренние таблицы используются практически в каждой SAP программе. Поэтому знать варианты определения внутренних таблиц ABAP очень важно для программиста ABAP.

 

Определение внутренних таблиц ABAP

Определение на основе структуры, таблицы БД или элемента из словаря

Определяем структуру или элемент ABAP словаря. На основе создаём внутреннюю таблицу следующим образом:

В этом примере используются стандартные типы данных, но аналогична конструкция и для пользовательских. Стоит отметить, что есть специфика обращения к столбцу таблицы на основе элемента. В данном примере имя столбца будет не VKORG, а TABLE_LINE(стандартное имя) вне зависимости от типа.

 

Декларация на основе локальной структуры

Есть возможность определить локальный тип и с помощью него создать внутреннюю таблицу ABAP. Этот способ используется в программах, методах, подпрограммах. Он используется когда данный тип не где в другом месте не понадобится.

Определение на основе типа таблицы из словаря

Есть возможность создать тип таблицы в ABAP словаре и создавать внутреннюю таблицу на его основе. Плюсы этого варианта в том что этот тип таблицы можно использовать и в других программах. А так же в типе таблицы ABAP можно указать дополнительные свойства, например, ключ и др. Тип таблицы упрощает декларацию внутренней таблицы.

Инлайновая декларация внутренних таблиц

Этот способ определения доступен начиная с версии 7.4. С помощью нового синтаксиса определяется внутреннюю таблицу без определения заранее типа. То есть программа на основе данных анализирует какой тип нужен и формирует таблицу согласно данному типу. Подробнее про инлайн декларацию, в том числе, и внутренних таблиц можно почитать в статье Инлайновая декларация.
Примеры определения:

 

Определение таблицы со строкой заголовка(устарело)

Конструкция WITH HEADER LINE для определения внутренних таблиц является устаревшей. Но эту конструкцию нужно знать, поскольку она используется в старых программах или в стандартном коде. Использовать её не нужно, но знать эту конструкцию нужно.

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