ABAP/LOOP のバックアップ(No.2)
- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- ABAP/LOOP へ行く。
- 0 (1970-01-01 (木) 18:00:00)
- 1 (2014-06-26 (木) 11:02:39)
- 2 (2015-11-10 (火) 12:49:08)
- 3 (2016-02-22 (月) 12:50:45)
内部テーブルをぐるぐる回す命令。 アドオンで使わないプログラムはないんじゃないか?というくらいメジャーな命令。
概要 †
LOOP~ENDLOOP形式で記述し、大抵は集計したり分岐してOutputやその元ネタを作るために利用する。
LOOP AT iTAB INTO WorkArea †
用法 †
一般的にはこちら。 このLOOPで何らかの別iTABを作るならばこちらが相当だが、元ネタの編集・更新ならば下記のAssigning句を使うべき。
サンプル †
LOOP AT L_IT_MARC INTO L_WA_MARC. CORRECT L_WA_MARC TO L_IT_STOCK. ENDLOOP.
LOOP AT iTAB Assigning <FieldSymbols> †
用法 †
iTABの内容を更新する場合はこちら。
ASSIGNの方がパフォーマンスが高いという理由でこちらを使う人もいるが、INTO WorkAreaと違い、こちらは命令の仕様でこちらはiTABを更新しうる。 そのため、更新の意図がないのならば、こちらを使うべきでない。
サンプル †
LOOP AT L_IT_ALVREPORT ASSIGNING <F_WA_ALVREPORT>. IF ( <F_WA_ALVREPORT>-AMOUNT > 100 ). <F_WA_ALVREPORT>-DIVISION = 'X'. ENDIF. ENDLOOP.
LOOP AT iTAB WHERE xxx †
用法 †
特定の条件を満たすレコードでのみLOOPしたい場合に使用する。 例えば、特定の性質を持つ得意先マスタが指定された伝票など。
この命令を使用した場合の注意点は、AT句が正しく効かないこと。
サンプル †
LOOP AT L_IT_KNA1 INTO L_WA_KNA1 WHERE LAND1 = 'JP'. ..... ENDIF.
その他 †
LOOP中の内部テーブル自体に対しての登録や削除等のデータ操作について、INDEXなどのシステム変数にも影響を及ぼすため、極力行わないのが望ましい。そうしなければならない理由も特にないし。
【スポンサードリンク】
amazon_book_sap_system_implement is not found or not readable.
コメントはありません。 Comments/ABAP/LOOP