トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS

ABAP/EXIT の変更点

Top/ABAP/EXIT

文字通り、''抜ける''ための[[ABAP]]命令。

* 概要 [#j535c515]
処理中の箇所を終了して次の処理へ遷移する場合に利用し、[[START-OF-SELECTION>ABAP/START-OF-SELECTION]]や
[[END-OF-SELECTION>ABAP/END-OF-SELECTION]]だと[[基本一覧>ABAP/ABAPレポート]]に遷移する・・・が、SAPはループ([[DO>ABAP/DO]]、[[WHILE>ABAP/WHILE]]、[[LOOP>ABAP/LOOP]]、[[SELECT>ABAP/SELECT]])の中のみの利用を推奨している。

** 用法 [#d1849e9f]
というわけで「特定の条件に合致した場合に、現在のループを抜ける」が使い方の大勢を占め、''現在の''という文言はループのネストがある場合に今まさに処理中のループを表す。

なお、似たような処理である「特定の条件に合致した場合は、レコードを読み飛ばす」のケースは、[[CONTINUE>ABAP/CONTINUE]]命令を利用する。

なお、[[内部テーブル>ABAP/内部テーブル]]からデータを検索する際に、[[READ TABLE>ABAP/READ TABLE]]ではイコール条件でしか検索できないため[[LOOP>ABAP/LOOP]]命令と組み合わせて検索する小技がある。
サンプルは、これで記述する。

** サンプル [#lf623974]
# LOOP AT L_IT_BKPF INTO L_WA_BKPF WHERE BLART  = P_BLART
#                                    AND BUDAT >= P_BUDAT.
#   EXIT.
# ENDLOOP.
 LOOP AT L_IT_BKPF INTO L_WA_BKPF WHERE BLART  = P_BLART
                                    AND BUDAT >= P_BUDAT.
   EXIT.
 ENDLOOP.

IF ( SY-SUBRC = 0 ).
  ...
ENDIF.
}}}}}

* その他 [#xa0fa58e]
関連する命令は、[[CONTINUE>ABAP/CONTINUE]]、[[CHECK>ABAP/CHECK]]、[[REJECT>ABAP/REJECT]]、[[STOP>ABAP/STOP]]、[[RETURN>ABAP/RETURN]]など。

~
~
CENTER:【スポンサードリンク】
#htmlinsert(amazon_book_sap_system_implement)
~
~
----
#pcomment(reply)