헤더 라인은 인터널 테이블의 첫 번째 행
ABAP에서는 인터널 테이블을 선언할 때 WITH HEADER LINE을 추가할 수 있습니다. 이렇게 하면 인터널 테이블에 첫 번째 행(헤더 라인)을 위한 별도의 작업용 변수인 HEADER LINE이 자동으로 생성됩니다.
DATA: it_students TYPE TABLE OF student WITH HEADER LINE.
it_students-name = 'John'.
it_students-age = 21.
APPEND it_students. " 테이블에 헤더 라인 추가
워크 에어리어 (Work Area)는 ABAP에서 인터널 테이블의 각 행을 처리할 때 사용되는 단일 레코드를 저장할 수 있는 변수입니다. 간단히 말해서, 인터널 테이블의 한 행을 임시로 저장하고 처리하기 위한 메모리 공간입니다.
DATA: wa_student TYPE student. " 워크 에어리어 선언
헤더라인이 없는 경우, 즉 WITH HEADER LINE 없이 인터널 테이블을 선언하고 사용하는 경우에는 LOOP AT 구문에서 워크 에어리어 (Work Area) 를 사용해야 합니다. 이렇게 해야 인터널 테이블의 각 행을 처리할 수 있습니다.
DATA: itab TYPE TABLE OF your_structure, " 인터널 테이블 선언
work_area TYPE your_structure. " 워크 에어리어 선언
LOOP AT itab INTO work_area. " 테이블의 각 행을 work_area에 담아 처리
WRITE: work_area-carrid. " 워크 에어리어에서 carrid 값을 출력
ENDLOOP.
헤더라인을 사용하면, INTERAL TABLE을 선언할 때 WITH HEADER LINE을 추가하게 됩니다. 이 경우 워크 에어리어를 별도로 선언하지 않고, LOOP AT 구문에서 헤더라인을 직접 사용합니다. 이 방식은 헤더라인이 인터널 테이블 자체에 내장되어 있기 때문에, INTO 구문 없이 바로 테이블의 각 행을 처리할 수 있습니다.
DATA: itab TYPE TABLE OF your_structure WITH HEADER LINE. " 헤더라인 포함 인터널 테이블 선언
LOOP AT itab. " 테이블의 각 행을 직접 처리
WRITE: itab-carrid. " itab(헤더라인)의 carrid 값을 출력
ENDLOOP.
워크 에어리어 (Work Area):
INTO work_area 구문을 통해 테이블의 각 행을 work_area로 복사하고 그 데이터를 처리합니다.
테이블의 행을 하나씩 work_area에 할당하여 순차적으로 처리합니다.
헤더라인이 없을 때: LOOP AT itab INTO work_area 구문을 사용하여 워크 에어리어에 데이터를 담고 처리합니다.
얼추 아르고스