【ABAP】内部テーブルの宣言―理解しておきたい3つのポイント

ABAP

ABAPプログラミングの一番の特徴をあげるとすれば、「内部テーブル」です。

他の言語では内部テーブルという概念がないのでとっつきにくく感じるかもしれませんが、ABAPのコーディングはこれを知らないと何も始まりません!

とはいえ、理解してしまえば難しくない概念ですしコーディングも簡単です。

このページでは、内部テーブルの宣言方法と押さえておきたい基本知識について解説していきます。

※内部テーブルって何?そんな方は、変数・構造・内部テーブルのイメージを分かりやすく解説したこちらのページをご覧ください。

それでは、さっそく解説を始めます。

スポンサーリンク
スポンサーリンク

内部テーブルの宣言方法

内部テーブルの宣言方法は1つではありません。が、どの方法をとるにせよ最も基本的な宣言方法を理解しておく必要があります。

以下では、1番基本となる構文ルールと考え方を解説していきます。

内部テーブルの宣言(構造の定義)

内部テーブルを定義するには、まず①「構造」の定義を行い、②定義した構造を用いて内部テーブルを定義する流れです。

構造の定義は、TYPES命令で行います。

簡単な2列の構造を定義する例を以下に示します。

TYPES:
BEGIN OF WORK001,
NO
TYPE I,
NAME
TYPE C,
END OF WORK001.

このプログラムを実行した後にできる構造がこちら。


これで、最初のステップ①「構造の定義」が完了です。

内部テーブルの宣言(テーブルの定義)

定義した構造を基に、本題である内部テーブルの宣言を行います。

構文ルール

DATA TABLE001TYPE TABLE OF WORK001.

内部テーブルの定義はDATA命令を用います。ただし、内部テーブルの宣言を行う場合は、オプションに「TABLE OF」と指定します。この点が、通常のDATA命令と異なります。

上記命令を用いた場合に出来上がるのが、こちら。

blank

これで理解できましたね。不明な場合は、もう一度確認してみてください。

ただし、厳密に言うとこれだけでは内部テーブルを利用できる状態になったとは言えないのです。内部テーブルを利用する際には、必ず作業エリア(1行だけのテーブル、つまり構造)が必要になるからです。

したがって、より実践的な書き方はこちらになります。

構文ルール(実践バージョン)

DATA :WorkSpace001 TYPE WORK001,
TABLE001 TYPE TABLE OF WORK001.

そうです。内部テーブルを定義すると同時に、作業エリアも同時に定義するのです。実際の現場では、この書き方が中心です。同時に宣言することで、なんのための作業エリアであるのかを判別しやすくするのです。

念のために解説しておきますが、これはDATA命令をただチェーン命令で記述しているだけです。チェーン命令についてはこちらのページで解説しています。

内部テーブルの宣言方法はこれだけです。他にもいろいろな記述方式がありますが、ここで解説した内容はマスターしていることが前提となります。

タイトルとURLをコピーしました