ABAP-WA / ITAB

유재용·2025년 3월 19일

ABAP

목록 보기
5/11

ABAP에서 Work Area와 Internal Table(ITAB)은 데이터를 처리하는 데 핵심적인 구조입니다.

Work Area (작업 영역)

Work Area는 단일 레코드를 저장하는 데 사용되는 메모리 영역입니다. 주요 특징은 다음과 같습니다:

  • 데이터베이스 테이블의 한 행(row)을 담을 수 있는 구조입니다
  • 구조체(Structure)라고도 불리며, 여러 필드의 집합으로 구성됩니다
  • Internal Table의 행을 처리하기 위한 임시 저장소로 사용됩니다
  • 데이터베이스와 프로그램 간의 데이터 이동을 위한 중간 매개체 역할을 합니다

예시 코드:

DATA: wa_employee TYPE ty_employee.  " 직원 정보를 담는 Work Area 선언

" Work Area에 값 할당
wa_employee-empid = '1001'.
wa_employee-name = '홍길동'. 
wa_employee-department = 'IT'.

Internal Table (내부 테이블)

Internal Table은 메모리에 여러 개의 레코드를 저장할 수 있는 테이블 구조입니다. 주요 특징은 다음과 같습니다:

  • 여러 행(row)의 데이터를 저장할 수 있는 테이블 형태의 메모리 구조입니다
  • 데이터베이스 테이블과 유사하지만 프로그램 실행 중에만 메모리에 존재합니다
  • 3가지 유형이 있습니다:
    • Standard Table: 인덱스로 접근 가능, 순차적 처리에 최적화
    • Sorted Table: 정렬된 키를 기준으로 바이너리 검색 가능
    • Hashed Table: 해시 알고리즘을 사용한 키 기반 빠른 접근
  • 데이터 처리, 정렬, 필터링 등 다양한 작업에 사용됩니다

예시 코드:

" Internal Table 선언
DATA: it_employees TYPE TABLE OF ty_employee.

" 데이터 추가
APPEND wa_employee TO it_employees.

" Internal Table 순회
LOOP AT it_employees INTO wa_employee.
  WRITE: / wa_employee-name, wa_employee-department.
ENDLOOP.

" 특정 조건으로 데이터 읽기
READ TABLE it_employees INTO wa_employee WITH KEY empid = '1001'.

Work Area와 Internal Table의 관계

Work Area와 Internal Table은 밀접하게 연관되어 사용됩니다:

  • Internal Table의 단일 행을 Work Area로 읽어와 처리한 후 다시 Internal Table에 저장하는 패턴이 일반적입니다
  • APPEND, INSERT, MODIFY 등의 명령어로 Work Area의 데이터를 Internal Table에 추가/수정할 수 있습니다
  • READ TABLE, LOOP AT 등의 명령어로 Internal Table의 데이터를 Work Area로 가져올 수 있습니다

이 두 구조를 효과적으로 활용하면 ABAP 프로그램에서 데이터를 효율적으로 처리할 수 있습니다.

profile
ABAP 개발자

0개의 댓글