본문 바로가기

SAP/ABAP

Loop 구문

최초 작성일: 2024-05-29

목적: loop 구문 이해하기

 

*&---------------------------------------------------------------------*
*& Report ZTEST_LOOP
*&---------------------------------------------------------------------*
*&
*&---------------------------------------------------------------------*
REPORT ZTEST_LOOP.

DATA : BEGIN OF ITAB OCCURS 0, " ocurs는 테이블

NUM1 TYPE I , "integer = 숫자 , 정수 / 초기값이 0 이다

NUM2 TYPE I ,

NUM3 TYPE I ,

END OF ITAB .

"begind of ~ end of 선언 문이 나오면 'with header' 테이블 구조로 행과 테에블이 동시에 itab 이라는 이름으로 생성

DO 10 TIMES . " do문을  10번 실행"

ITAB-NUM1 = sy-index.

"clear itab-num2.

DO 10 TIMES .

ITAB-NUM2 = sy-index .

ITAB-NUM3 = ITAB-NUM1 * ITAB-NUM2 .

append itab.

ENDDO .

ENDDO .

LOOP AT ITAB .

WRITE : / ITAB-NUM1, '*' , ITAB-NUM2 , '=' , ITAB-NUM3 .

ENDLOOP .


"반복문에서 시스템 변수가 중요
" sy-index do문을 실행할 때 몇번째 실행중인가를 보여주는것
" sy-tabix loop 문을 실행할때 append를 실행할때 등 테이블을 작업하는 구문에서 몇번째 행을 작업중인가를 보여줌(테이블을 컨트롤 하는 것)

 

 

sy-index는 itab-num1 구문에서 숫자가 올라가는 반면, sy-tabix의 경우에는 append 구문 이후에 숫자가 올라간다

 

  • sy-tabix : internal table상 몇번째 행을 쌓고 있는지
  • sy-index : do문 실행할 때 몇번째 실행 중인지

위 구문 기준으로 인터널 테이블 상 쌓인 데이터

Loop AT - ENDLOOP 구문을 디버깅 걸어서 보면, ITAB상 행 한줄한줄씩 읽는 것을 볼 수 있

 

'SAP > ABAP' 카테고리의 다른 글

Loop 구문과 Collect 구문의 구조  (0) 2024.05.29
COLLECT 구문  (0) 2024.05.29
중첩 Join시 유의 사항  (0) 2024.05.29
중첩 INNER  (0) 2024.05.20
Left Join & Right Join  (0) 2024.05.20