【ABAP】APPEND命令―内部テーブルへの行追加(3分で解説)

ABAP

本ページでは、内部テーブルへの行追加を行うAPPEND命令について解説します。

処理の内容も構文ルールも難しくはありませんが、テーブル/内部テーブル/構造といった基本知識が必要になってきますので、まずそれらの用語の意味がよくわからない・・・という方は初めに以下の記事からお読みください。

内部テーブル/構造/変数―ABAPの3つの基本

APPEND命令は、ワークエリア(構造)に格納されている値を内部テーブルの最後の行に付与(追加)する処理を行います。APPEND命令の意味や基本となる構文ルール、使いどころ・注意点について初心者向けに分かりやすく解説します

このページで学べる内容
  • APPEND命令の使い方・書き方
  • APPEND命令の処理内容
  • APPEND先のテーブルの種類と制限

ABAPエンジニアを目指す方であれば、知っておきたい超重要知識ですので、是非最後までご覧ください。

それでは、早速解説を始めます。

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

APPEND命令

APPENDとは日本語に訳すと「付与する」「くっつける」みたいな意味になります。その言葉の意味通り、APPEND命令では内部テーブルへデータを追加する処理を行います。

注意しておきたいのが、これはあくまでも内部テーブルに対する処理であるということ。標準テーブルとアドオンテーブルに対しては使えない処理なので注意しましょう。

ここから、APPEND命令の処理内容を具体的にイメージを持てるよう、簡単な画像を付けて説明します。

処理の内容:APPEND命令

APPEND命令は、内部テーブルの最後の行に作業エリアの内容を挿入する命令です。

※作業エリアとは「構造」のことです。

APPEND命令は、内部テーブルの最後の行に作業エリアの内容を挿入する命令です。

ポイントは、追加されるのは内部テーブルの一番最後の行であるという点です。ここだけは、注意して押さえておきましょう。

似たような処理にINSERT命令がありますね。こちらも日本語に直すと「挿入」という意味になり、APPEND命令と混乱しがちな部分なのですが、両者には明確な違いが存在します。APPEND命令では挿入されるのが最後の行であるのに対して、INSERT命令では任意の行に挿入できるということです。INSERT命令のイメージはこんな感じになります。

APPENDとINSERTの違い
  • APPEND
    ⇒テーブルの1番最後に挿入される

  • INSERT
    ⇒テーブルの任意の行に挿入できる

INSERT命令はレコードを挿入する箇所を特定する処理が行われる分、その処理が行われないAPPEND命令の方がパフォーマンスの観点から優れています(APPEND命令のほうが処理速度が速い)。そのため、どちらの利用でも良い場合(APPENDでもINSERTでも要件を満たせる場合)は、可能な限りAPPEND命令を利用するようにしましょう。

INSERT命令については、以下のページで詳しく解説していますので、是非この機会に合わせて学習してみましょう。

ここまで見てきたように、APPEND命令の処理はとても簡単です。INSERT命令との違いを理解したうえで、ここからは構文ルールについての解説に移ります。

構文ルール:APPEND命令

APPEND(構造) TO (内部テーブル).


構造に格納されたデータ内容を、内部テーブルの最後の行に挿入します。

また、もちろん指定する構造と内部テーブルの同じ構造のデータ型でなければなりません。異なるデータ型の構造と内部テーブルの場合、正常に処理が行われません。

サンプルコード:APPEND命令

APPEND命令を利用したサンプルコードです。以下のプログラムでは、フィールドシンボルを利用して構造へ格納した値を「LIT_VBELN」に挿入する操作を行います。

LOOP AT IT_test001 ASSIGNING  FIELD-SYMBOL(<fs001>)
  WHERE VBELN IS NOT INITIAL.
  LW_VBELN-SIGN   = 'I'.
  LW_VBELN-OPTION = 'EQ'.
  LW_VBELN-LOW    = <fs001>-VBELN.
  APPEND LW_VBELN TO LIT_VBELN.	 
ENDLOOP.

最後に、少しレベルが上がる内容ですが、内部テーブルの種類に応じたAPPEND命令の注意点について補足しておきます。

挿入先の内部テーブルの種類に注意

APPEND命令で挿入することができる内部テーブルは、「標準テーブル」と「ソートテーブル」のみです。これは、INSERT命令でも同様です。

ハッシュテーブルにはAPPEND命令を利用できないという点に注意が必要です。

APPEND命令の利用については、ここで解説した内容とLOOP処理 / 構造・内部テーブルの基本知識とセットで覚えておきましょう。

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

ABAPを1から学習したい方のために、ABAPの基本知識・基礎概念を1つのページにまとめました。

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

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