2020年02月10日
【ABAP】READ TABLE―内部テーブルの読み込み
本ページでは、READ TABLE命令による内部テーブルの読み込み処理について解説します。
ABAPでは、この内部テーブルの処理が鍵となりますので、丁寧に理解しておく必要があります。
そのため本ページでは、構文ルールに加えて、各種オプションの指定方法、その他コーディング時の注意点も合わせて深堀して解説しています。
目次
1 READ TABLEとは
1.1 構文ルール:READ TABLE
2 READ TABLEの処理内容
2.1 ASSIGNING:フィールドシンボルを利用する場合
2.2 TRANSPORTING NO FIELDS:レコードを格納しない
1 READ TABLEとは
1.1 構文ルール:READ TABLE
2 READ TABLEの処理内容
2.1 ASSIGNING:フィールドシンボルを利用する場合
2.2 TRANSPORTING NO FIELDS:レコードを格納しない
1 READ TABLEとは
READ TABLEは、内部テーブルの単一行を読み込む命令です。
標準テーブル・アドオンテーブルから項目を選択する場合はSELECT命令ですが、内部テーブルの場合はREAD TABLEです。
意外と、初心者に人ほどこの罠に陥ることが多いのでしっかり区別しておきましょう。
・READ ⇒ 内部テーブルの読み込み
・SELECT ⇒ 標準・アドオンテーブルの選択
※READ TABLEは、あくまでも単一行の読み込みです。
SELECT-SINGLE命令と同じような処理になります。
1.1 構文ルール:READ TABLE
READ TABLE(内部テーブル) INTO (構造)
WITH KEY A = A'
B = B' .
利用シーンに応じて様々オプションはありますが、最もよく使う基本形です。
この形で覚えておくと良いでしょう。
2 READ TABLEの処理内容
READ TABLEは指定した内部テーブルから単一行を読み込みます。
では、どの行を読み込むか?
それを、WITH KEYの後に指定してします。
「WITH KEY VBELN = '100000000'」 とすれば、受注伝票 100000000のレコード(行)が対象となります。
仮に、読み込む行が一意にならない場合は、最初に一致するレコードが読み込み対象となります。
ここらへんもSELECT-SINGLEの処理と同じですね。
読み込んだレコードを INTOの後に指定した構造に格納し、後続の処理に進むことになります。
2.1 ASSIGNING:フィールドシンボルを利用する場合
読み込んだレコードは必ずしも、INTO の後に指定した構造に格納するわけではありません。
1つ目の方法が、フィールドシンボルを利用するパターンです。
フィールドシンボルを利用する場合の構文は以下のよう「ASSIGNING」を利用します。
READ TABLE(内部テーブル)
ASSIGNING <フィールドシンボル>
WITH KEY A = A'
B = B' .
2.2 TRANSPORTING NO FIELDS:レコードを格納しない
使用頻度は低いですが、読み込んだ内部テーブルのレコードをどこにも格納しないという指定も可能です。
「TRANSPORTING NO FIELDS」オプションは、レコードを格納せずにシステム項目だけを設定するオプションです。
READ TABLE(内部テーブル) TRANSPORTING NO FIELDS
WITH KEY A = A'
B = B' .
この処理は「レコードが存在するかどうかだけ知りたい場合」に用います。
タグ:ABAP
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/9623089
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック