ABAPにおける、処理ブロックやプログラム自体を終了させる命令はいくつかあります。
それぞれの命令で挙動などが若干違う場合もありますので
実現したい内容に沿った終了命令を使用してください。
※拡張の開発時に命令によってはその後の標準機能を意図せず飛ばしてしまう可能性がありますので
その点、ご留意ください。
★EXIT
現在の処理ブロックを終了します。
繰り返し処理の中で使用すると繰り返し処理を終了します。
例①)
FORM test_form.
EXIT."test_formを終了する
ENDFORM.
例②)
FORM test_form.
DO.
EXIT."DOループを終了する(test_formは終了しない)
ENDDO.
ENDFORM.
*Exit命令をIF分岐で特定条件の場合のみ発行されるようにすれば
*特定条件で処理ブロックを抜ける判定を作成できます。
★RETURN
現在の処理ブロックを終了します。
繰り返し処理の中で使用しても処理ブロック自体を終了します。
例①)
FORM test_form.
RETURN."test_formを終了する
ENDFORM.
例②)
FORM test_form.
DO.
RETURN."test_formを終了する
ENDDO.
ENDFORM.
*Exit命令同様、IF分岐で特定条件の場合のみ発行されるようにすれば
*特定条件で処理ブロックを抜ける判定を作成できます。
★CHECK
現在の処理ブロックを終了します。
繰り返し処理の中で使用すると繰り返し処理を終了します。
例①)
FORM test_form.
CHECK lv_flag = abap_on. "lv_flagがONでない場合はtest_formを終了する
ENDFORM.
例②)
FORM test_form.
DO.
CHECK lv_flag = abap_on. "lv_flagがONでない場合はDOループを終了する
ENDDO.
ENDFORM.


