안녕하세요..
지난 글에서는 ABAP에서의 변수 선언과 Structure, Internal Table의 기본 개념을 살펴봤습니다.
이번 글에서는 Internal Table의 활용법에 대해 구체적으로 다뤄보겠습니다.
Internal Table은 ABAP 프로그래밍에서 데이터를 다루는 핵심 요소입니다.
데이터를 담는 것뿐만 아니라,
추가(Append), 읽기(Read), 삭제(Delete), 루프(Loop) 처리 등 다양한 기능을 제공합니다.
DATA : BEGIN OF gs_scarr,
carrid TYPE scarr-carrid,
carrname TYPE scarr-carrname,
END OF gs_scarr,
gt_scarr LIKE TABLE OF gs_scarr.
Internal Table에 데이터를 넣는 방법은
대표적으로 APPEND와 INSERT가 있습니다.
"APPEND 예시
CLEAR gs_scarr. "변수 초기화
gs_scarr-carrid = 'AA'.
gs_scarr-carrname = 'American Airlines'.
APPEND gs_scarr TO gt_scarr.
"INSERT 예시
CLEAR gs_scarr.
gs_scarr-carrid = 'LH'.
gs_scarr-carrname = 'Lufthansa'.
INSERT gs_scarr INTO gt_scarr INDEX 1.
Internal Table에서 데이터를 찾을 때는 READ TABLE을 사용합니다.
DATA gv_index TYPE sy-tabix.
READ TABLE gt_scarr INTO gs_scarr WITH KEY carrid = 'AA' BINARY SEARCH.
IF sy-subrc = 0.
WRITE: / '항공사 이름:', gs_scarr-carrname.
ENDIF.
Internal Table을 순회하면서 데이터를 처리할 수 있습니다
LOOP AT gt_scarr INTO gs_scarr.
WRITE: / gs_scarr-carrid, gs_scarr-carrname.
ENDLOOP.
LOOP AT gt_scarr INTO gs_scarr WHERE carrid = 'AA'.
WRITE: / gs_scarr-carrid, gs_scarr-carrname.
ENDLOOP.
Internal Table에서 특정 데이터를 삭제할 수도 있습니다.
DELETE gt_scarr WHERE carrid = 'AA'.
원하는 필드에 맞춰서 정렬할 수 있습니다.
"하나의 필드
SORT gt_scarr BY carrname ASCENDING.
"어려개의 필드
SORT gt_scarr BY carrid ASCENDING carrname DESCENDING.
필드 정렬후 중복을 제거할 수 있습니다.
SORT gt_scarr BY carrid.
DELETE ADJACENT DUPLICATES FROM gt_scarr COMPARING carrid.
이번 글에서는 Internal Table의 기본적인 활용법을 정리했습니다.
Internal Table은 ABAP 프로그래밍의 핵심 자료구조로,
실무에서 데이터를 처리할 때 반드시 이해하고 있어야 합니다.