CHECK 구문이 LOOP외부에 있고, 해당 구문이 false인 경우 현재 처리 블록을 종료한다.
만약, subroutine안에 check구문이 있다면, check구문이 참일 경우 check 하위 구문을 실행하지만,
false일 경우 하위 구문을 실행하지 않고 해당 서브루틴을 종료한다.
CHECK RA_BTN02 IS NOT INITIAL.
이 구문의 경우, RA_BTN02라는 변수가 값이 있다면(IS NOT INITIAL) 하위 구문을 실행하고,
값이 없다면(IS INITIAL) 아래 구문을 실행하지 않는다.
이와 동일한 표현으로는 RETURN구문을 사용할 수 있는데,
IF RA_BTN02 IS NOT INITIAL.
RETURN.
ENDIF.
이런 방식으로도 사용이 가능하다.
PERFORM MAKE_DAN USING SO_DAN SO_CHA-LOW SO_CHA-HIGH.
*&---------------------------------------------------------------------*
*& Form MAKE_DAN
*&---------------------------------------------------------------------*
FORM MAKE_DAN USING PT_DAN LIKE SO_DAN
PV_LOW
PV_HIGH.
CHECK PT_DAN-LOW <= PT_DAN-HIGH.
PERFORM GUGUDAN USING PT_DAN-LOW PV_LOW PV_HIGH.
SKIP.
PT_DAN-LOW = PT_DAN-LOW + 1.
PERFORM MAKE_DAN USING PT_DAN PV_LOW PV_HIGH.
ENDFORM.
이와 같은 방법으로, 서브루틴 안에서 해당 서브루틴을 실행할지, 실행하지 않을지는 check구문으로 사용할 수 있다.
단, event block인 LOAD-OF-PROGRAM의 경우 CHECK를 사용해서 종료할 수 없다.
'Language > ABAP' 카테고리의 다른 글
[ABAP] Dynamic Selection Screen Function Key (0) | 2024.02.18 |
---|---|
[ABAP/Error Log] CX_SY_READ_SRC_LINE_TOO_LONG (0) | 2024.02.01 |
[ABAP] Exiting Loops (EXIT, CONTINUE, CHECK) (1) | 2023.10.04 |
[ABAP] Obsolete Syntax - REFRESH (0) | 2023.10.03 |
[ABAP] SELECT ~ FOR ALL ENTRIES IN <ITAB> (0) | 2023.09.18 |