【ABAP】TABLES命令―1分で解説【非推奨命令】

ABAP

本ページでは、TABLES命令の意味と処理内容/基本構文について解説します。

普段あまり見慣れない命令かもしれませんが、レガシープログラムの改修などで唐突に現れることもあるので、このページで解説・整理しておきたいと思います。

この命令は現在はSAP社により使用を禁止されています。この命令を使わなくても、DATA命令を用いて目的の処理は達成できるため、新規にプログラムをコーディングする場合にはTABLES命令は用いないようにしましょう。

このページで学べる内容
  • TABLES命令とは?
  • TABLES命令の代替方法

ABAPerであれば、知っておいて損はない内容です。是非最後までご覧いただき、この機会に理解しておきましょう。

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

TABLES命令とは

TABLES命令は「データベース」と同じ名前の作業領域(つまり構造)を宣言する命令です。

具体的に構文ルールを踏まえて解説していきます。

構文ルール:TABLES命令

TABLES(テーブル名).


構文は非常に簡素です。この命令を実行すると、(テーブル名)に指定したテーブルの構造と全く同じ構造が定義されます。

テーブルだけでなく、ABAPディクショナリに登録した構造やビューも指定できます。(ただし、ABAPオブジェクトでは利用できません。)

例えば、こんな使い方ができます。

サンプルコード:TABLES命令

TABLES BSEG.

こうすることで、BSEG(会計伝票明細テーブル)と同様のテーブル作業領域(構造)が出来上がります。ただし、何度も説明している通り、この命令を利用せずとも上記の処理は実行可能です。

TABLES命令:利用例

以下のコードでは、BSEGの作業領域を宣言しています。

TABLES: BSEG.           "テーブル「BSEG」の作業領域

SELECT * FROM BSEG.
   WRITE: BSEG-BUKRS,   "会社コード 
          BSEG-BELNR,   "伝票番号 
          BSEG-BUZEI.   "明細番号
ENDSELECT.

ご覧のように、構造とテーブル名が同じになってしまうため、非常に可読性が悪いです。(おそらく、もともとは構造を意識せずに利用できる命令として導入されていたのではないかと推測しています。)

新規に開発を行う場合は、TABLES命令の利用は避けるようにしましょう。

ABAPを1から勉強したい方は

ABAPを1から学習したい方は、以下の記事で学習するのがお勧めです。

現在、完全無料で公開しておりますので、是非ご覧ください!

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