구조체, 인터널 테이블, 테이블, DB딕셔너리에 정의 및 역할을
알아보도록 하자.
구조체(Structure)
정의: 구조체는 서로 다른 데이터 타입을 가진 필드를 그릅화하여 하나의 논리적인 단위로 만든 테이터 형식.
사용 목적: 구조체는 관련 있는 데이터를 묶어서 하나의 단위로 처리할 수 있게 함. 예를 들어, 항공사 데이터에서 항공사 코드와 이름을 묶어서 하나의 구조체로 정의할 수 있음.
TYPES: BEGIN OF ty_sflight,
carrid TYPE scarr-carrid,
connid TYPE sflight-connid,
fldate TYPE sflight-fldate,
END OF ty_sflight.
DATA: gs_sflight TYPE ty_sflight.
인터널 테이블(Internal Table)
정의: 인터널 테이블은 동적으로 크기가 조절되는 메모리 내의 테이블로, ABAP프로그램에서 데이터를 임시로 저장하고 처리하는데 사용.
사용목적: 대량의 데이터를 일시적으로 저장하고, 루프나 반복문을 통해 데이터 처리 및 조작을 수행할 수 있음.
DATA: lt_sflight TYPE TABLE OF ty_sflight.
테이블 (Database Table)
정의: 데이터베이스 테이블은 SAP 데이터베이스에 물리적으로 저장된 테이블로, 데이터 저장 및 검색을 위해 사용.
사용 목적: 영구적으로 데이터를 저장하고, 데이터베이스 관리시스템(DBMS)를 통해 데이터를 관리함.
예제: 'ZSCARR'와 같은 사용자 정의 테이블은 SAP데이터베이스에 저장된 테이블입니다.
데이터베이스 딕셔너리(Data Dictionary)
정의: 데이터베이스 딕셔너리는 데이터베이스 테이블, 뷰, 인덱스, 구조체, 등과 같은 데이터베이스 객체의 메타데이터를 정의하고 관리하는 SAP의 중앙 저장소임.
사용목적: 데이터베이스 딕셔너리는 테이블 및 필드의 정의, 데이터 타입, 길이, 기본 키, 외래 키, 도메인 및 데이터 요소를 정의하고 관리.
예제: 'DFIES'와 같은 테이블은 데이터 딕셔너리에서 테이블의 필드 정보를 가져오기 위해 사용됨.
코드 내 사용 예
DATA: LS_ALSMEX TYPE ALSMEX_TABLINE.
DATA : LT_ALSMEX TYPE TABLE OF ALSMEX_TABLINE.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
TABNAME = 'ZSCARR'
TABLES
DFIES_TAB = LT_DFIES.
DATA: LT_DFIES TYPE TABLE OF DFIES.
이 코드에서는 EXCEL 파일을 읽어와서 인터널 테이블에 데이터를 저장하고,
데이터베이스 테이블의 필드 정보를 가져와서 데이터변환 및 매핑을 수행한 수, 최종적으로 데이터 리스트를 생성하는 과정이 포함됨.