内部テーブル操作
2. 内部テーブル操作
2. 内部テーブル操作
内部テーブルの操作が容易になりました。6つの使用パターンがありますので、それぞれ確認していきましょう。
内部テーブル操作パターン①
<ABAP7.4以前>
内部テーブルを読み込む際はインデックス、またはキーを指定してワークエリアに行を格納する必要がありました。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/d0093d8509ba82f36f1ccbb0c6fde6d0.png)
<ABAP7.4以降>
インデックスやキーを指定して直接行にアクセスできるようになりました。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/3d1520574378b2fadb4cd40a1d80abb3.png)
内部テーブル操作パターン②
同様に次の内部テーブル操作も容易になりました。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/328f22266074446c9686067173e62ed3.png)
内部テーブル操作パターン③
![](https://kanda-it-school-kensyu.com/wp-content/uploads/6545b25f9c55474e4493f8a46c12d36b.png)
内部テーブル操作パターン④
![](https://kanda-it-school-kensyu.com/wp-content/uploads/26a16489df433c0d9bf976fa6daff7c8.png)
内部テーブル操作パターン⑤
![](https://kanda-it-school-kensyu.com/wp-content/uploads/45f35d8bbc3e6d27231de4c5f55b4309.png)
※ABAP7.4から、IF条件の結果がtrueのときは
if <変数> = abap_trueと記載せずとも、簡潔な書き方でコーディング可能となっています。
内部テーブル操作パターン⑥
◎ABAP7.4以降の構文でデータが読み込めない場合、例外 CX_SY_ITAB_LINE_NOT_FOUNDが発生して、ショートダンプします。
◎ABAP7.4 SP8からは、例外が発生しないようにOPTIONALまたはDEFAULTを指定できるようになりました。(VALUE #と組み合わせる)。
![](https://kanda-it-school-kensyu.com/wp-content/uploads/2a6f0b4b8aeb6277a2da3aa7f586f30d.png)
※OPTIONALを指定した場合は、
READ TABLEで対象の行がなかった場合と同様に初期値が返されます。