PR

【ABAP】TABLES命令を1分でわかりやすく解説

ABAP

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

構文ルール:TABLES命令
TABLES (テーブル名).

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

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

ABAPerであれば知っておいて損はない内容です。是非最後までご覧ください。

スポンサーリンク

TABLES命令とは

TABLES命令は「データベース」と同じ名前のテーブル作業領域を宣言する命令です。

BKPFを参照した場合、それと全く同じ名称の内部テーブルが生成されるということです。

具体的な構文ルールを踏まえて、実際の処理内容を詳しく解説していきます。

構文ルール:TABLES命令

構文ルール:TABLES命令
TABLES (テーブル名).

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

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

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

サンプルコード:TABLES命令
TABLES BKPF.

こうすることで、BKPF(会計伝票ヘッダテーブル)と同様のテーブル作業領域(内部テーブル)が出来上がります。

ただし、何度も説明している通り、この命令を利用せずとも内部テーブルを宣言することは可能。内部テーブルの名称がDBテーブルと同じ名称になるのでできれば利用は避けたほうが良いでしょう。

実際に内部テーブルを定義する際は、現在では上記のようにDATA命令を用いるのは主流のためTABLES命令はほとんど用いられることはありません。

TABLES命令:利用例

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

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

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

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

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

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

初めてABAPを勉強するのは結構難しいですよね。

でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。

ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?

あなたの技術、もっと価値ある場所で活かしませんか?
SAPエンジニアのキャリア支援はこちらから↓

No.1 > 外資系・IT業界などハイクラスの転職なら【アクシスコンサルティング】blank
4人に1人のコンサルタントが選ぶパートナー!
ビッグ4やアクセンチュアへの転職を実現し年収1000万へ。

No.2 > IT・Web転職特化エージェント【レバテックキャリアblank
blank
サービス利用者数20万人突破。

平均年収アップ率77%であなたの転職成功を保証します。

No.3 > blankリクルートエージェント
blank
\転職支援実績NO.1/

応募が殺到しすぎるが故に・・・非公開にせざるを得ない魅力的な求人が多数!

読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!

このWebサイトは現役のエンジニアが以下3点を目的として運営しています。

  1. 勉強:一度理解した内容を忘れないように。
    → アウトプットは「最強のインプット」である! 
  2. 備忘:忘れたとしても後から見返せるように。
    → 未来の自分への「お手紙」を書いています。 
  3. 共有:〇〇ってこうだったんだ!の感動をシェアできるように。
    → あなたの知識は誰かにとっての「価値ある情報」です。 

副業ブログの始め方はこちらから

スポンサーリンク
ABAPSAP
シェアする
ビズドットオンラインをフォローする
タイトルとURLをコピーしました