안녕하세요 오늘은 SY-TABIX와 SY-INDEX의 차이에 대해서 알아보는 시간을 가져보도록 하겠습니다.
SY-TABIX는
LOOP ~ ENDLOOP 안에서 테이블의 행 번호(=INDEX)를 활용할 때 사용 한다고 생각해주시고
SY-INDEX는 DO ~ ENDDO, WHILE 문에서 몇번째 루프를 돌고있는지(=INDEX) 파악할 때 사용한다고 생각해주시면 됩니다.
예시를 한번 보겠습니다.
(SY-TABIX 예제)
LOOP문을 돌면 LT_SFLIGHT가 가진 행 중 맨 위의 행, 즉 첫번째 ROW부터 돌게 됩니다.
그러니 인터널 테이블 LOOP를 돌게 되면 인터널 테이블이 가진 첫번째 행, 즉 SY-TABIX가 1이 됩니다.
또 두번째 돌면 인터널 테이블이 가진 두번째 행을 돌게 되므로 인터널 테이블이 가진 인덱스는 2가되고 SY-TABIX는 2가 되겠죠??
이처럼 SY-TABIX는 현재 LOOP문 안에서 읽혀진, 즉 수행되고 있는 인터널테이블의 행을 나타내게 됩니다.
LOOP안에서 MODIFY 할 때 덤프가 나는 가장 대표적인 이유중 하나가 인덱스를 인지하지 못해서 입니다.
그러니 인덱스 값을 명시해주는 것도 나쁘지 않습니다.
(SY-INDEX 예제)
SY-INDEX는 DO ~ ENDDO, WHILE, READ TABLE문에서 사용한다고 생각해주시면 됩니다.
DO ~ ENDDO, WHILE에서는 SY-INDEX는 반복문을 몇번째 돌고있느냐를 표현합니다.
DO ~ ENDDO를 통한 구구단 예제를 보면 SY-INDEX을 어떻게 활용하면되는지 표현되어 있으니 참고 부탁드립니다.
https://arartexixi.tistory.com/24
DO ~ ENDDO 구문 (구구단 출력)
안녕하세요 오늘은 DO ~ ENDDO 구문을 알아보도록 하겠습니다. 이번에는 DO ~ ENDDO를 활용하여 구구단을 출력해보려고 합니다. DO ~ ENDDO는 LOOP처럼 DO와 ENDDO사이를 지속적으로 반복하는 구문입니다.
arartexixi.tistory.com
감사합니다.
'- SAP ABAP 구문' 카테고리의 다른 글
금액 마이너스 부호를 맨 앞으로 옮기기(CLOI_PUT_SIGN_IN_FRONT) (0) | 2023.03.06 |
---|---|
헤더라인과 인터널 테이블 (0) | 2022.12.12 |
DO ~ ENDDO 구문 (구구단 출력) (0) | 2022.11.09 |
SAP 시스템 변수 SY (SYST) (0) | 2022.11.09 |
CASE 문 (0) | 2022.11.08 |