[ABAP] 헤더라인/Work Area

펭귄안녕·2025년 2월 6일

abap

목록 보기
2/14

1. 헤더라인

헤더 라인은 인터널 테이블의 첫 번째 행
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.  " 테이블에 헤더 라인 추가

2. Work Area

워크 에어리어 (Work Area)는 ABAP에서 인터널 테이블의 각 행을 처리할 때 사용되는 단일 레코드를 저장할 수 있는 변수입니다. 간단히 말해서, 인터널 테이블의 한 행을 임시로 저장하고 처리하기 위한 메모리 공간입니다.

DATA: wa_student TYPE student.  " 워크 에어리어 선언

3. 헤더라인이 없는 경우 (Work Area 사용)

헤더라인이 없는 경우, 즉 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.

4. 헤더라인이 있는 경우

헤더라인을 사용하면, 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.

5. 헤더라인과 워크 에어리어 차이점

  • 워크 에어리어 (Work Area):
    INTO work_area 구문을 통해 테이블의 각 행을 work_area로 복사하고 그 데이터를 처리합니다.
    테이블의 행을 하나씩 work_area에 할당하여 순차적으로 처리합니다.

  • 헤더라인이 없을 때: LOOP AT itab INTO work_area 구문을 사용하여 워크 에어리어에 데이터를 담고 처리합니다.

  • 헤더라인 (Header Line):
    WITH HEADER LINE을 사용하면 인터널 테이블 자체가 워크 에어리어 역할을 하므로 INTO 없이 직접 데이터를 처리할 수 있습니다.
    헤더라인을 사용할 때는 LOOP AT itab 구문만 사용하며, 그 안에서 직접 테이블의 각 행을 처리합니다.
  • 헤더라인이 있을 때: LOOP AT itab만 사용하면, 테이블의 각 행이 자동으로 헤더라인에 담겨 처리되므로 INTO 구문이 필요 없습니다.

얼추 아르고스

0개의 댓글