0v0__DEV

LOOP와 CONTINUE, EXIT, STOP, CHECK 본문

SAP BASIC

LOOP와 CONTINUE, EXIT, STOP, CHECK

0v0_삐약 2023. 6. 20. 20:57
728x90

*&---------------------------------------------------------------------*
*& Report Z_TEST002
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT Z_TEST002.

*  [ CONTINUE ]
* LOOP 문 내에서 사용, 특정 조건에 해당하면 다음 LOOP로 이동하기 위해 사용
* CONTINUE 조건에 걸리면 LOOP 내 하위 로직을 수행하지 않음.

*SELECT * FROM TADIR INTO TABLE @DATA(GT_DATA) UP TO 10 ROWS.
*  LOOP AT GT_DATA INTO DATA(GS_DATA).
*    IF SY-TABIX EQ 5.
*      CONTINUE.
*    ENDIF.
*  WRITE : / SY-TABIX.
*  ENDLOOP.

*&---------------------------------------------------------------------*

* [ EXIT ] : LOOP 문 탈출

*  SELECT * FROM TADIR INTO TABLE @DATA(GT_DATA) UP TO 10 ROWS.
*  LOOP AT GT_DATA INTO DATA(GS_DATA).
*    IF SY-TABIX EQ 5.
*      EXIT.
*    ENDIF.
*  WRITE : / SY-TABIX.
*  ENDLOOP.
*

*&---------------------------------------------------------------------*

*[ STOP ]  : START-OF-SELECTION 하위 구문 모두 종료, 곧마로 END OF SELECTION 실행

START-OF-SELECTION.
  STOP.

  SELECT FROM TADIR INTO TABLE @DATA(GT_DATAUP TO 10 ROWS.


  LOOP AT GT_DATA INTO DATA(GS_DATA).

    IF SY-TABIX EQ 5.
      EXIT.
    ENDIF.

  WRITE / SY-TABIX.

  ENDLOOP.

END-OF-SELECTION.
  WRITE 'END-OF SELECTION'.

*&---------------------------------------------------------------------*

* [ CHECK ] : 참일 경우 하위 로직 수행, 거짓일 경우 하위로직 수행 X, 종료
*  현재 서브루틴 내 하위 로직 모두 종료, 서브루틴 탈출
*  조건을 넣어 PROCESSING BLOCK을 탈출할 수 있는 것이 RETURN COMMAND와의 차이

START-OF-SELECTION.
  PERFORM GET_DATA.

END-OF-SELECTION.
  WRITE 'END-OF SELECTION'.

  FORM GET_DATA.
    CHECK 'X' ABAP_FALSE.
    WRITE 'TEST'.
 ENDFORM.

728x90