Structure (구조체) ❓
: 구조체는 테이블과 같이 필드로 구성되어 있지만, 데이터는 저장할 수 없으며 구조만 가지고 있다. 실제 데이터베이스에는 생성되지 않고 ABAP Dictionary에만 존재하는 타입이다.
Structure는 구조체라고도 부르는 ABAP에서 기본이고 너무 중요한 개념이다.
Structure란 타프로그래밍 언어에서 사용하는 구조체와 같은 개념이다.
-> 여러개의 자료형을 하나로 묶어서 다루는 것!
Data Element가 모여있는 한 줄짜리 구조라고 생각하면 이해하기 쉽다.
그리고 Structure안에 들어있는 값을 우리는 Component(컴포넌트)라고 부른다.
Structure를 선언하는 방법은 여러가지이다.
1. ABAP Dictionary에 있는 Structure로 Structure 선언하기
DATA gs_sflight TYPE bc400_s_flight.
여기서 bc400_s_flight를 확인해보면 Structure이다.
2. Internal Table(인터널테이블)을 Line으로 받아서 Structure 선언하기
DATA gs_sflight LIKE LINE OF internal table.
Internal Table로 TYPE을 선언하면 Internal Table이 되기에 꼭!! Line으로 선언해줘야 Structure가 된다.
3. transparent tabel type을 사용하여 Structure 선언하기
매우 중요하고 헷갈리는 개념 중 transparent tabel type으로 선언하면 Internal Table이 되지 않을까!?라는 오해이다.
-> transparent tabel type에는 Internal Table을 만들기 위한 필수조건이 빠져있어서 Internal Table로 만들 수 없다.
그래서 transparent tabel type (in dictionary)으로 선언하면 Structure가 된다.
DATA gs_spfli type spfli.
여기서 SPFLI는 Transparent Table이고, SPFLI을 Type으로 선언한 gs_spfli는 디버깅을 통해 Structure임을 알 수 있다.