[ABAP] 구조체, 인터널 테이블, 테이블, DB딕셔너리

J._NA 개발일지·2024년 7월 22일
0

구조체, 인터널 테이블, 테이블, 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'와 같은 테이블은 데이터 딕셔너리에서 테이블의 필드 정보를 가져오기 위해 사용됨.

코드 내 사용 예

  • 구조체 : 'LS_ALSMEX'와 'GS_EXCEL'은 구조체로, 각각의 필드를 포함 하는 단위 데이터 형식임.
DATA: LS_ALSMEX TYPE ALSMEX_TABLINE.
  • 인터널 테이블 : 'LT_ALSMEX', 'LT_DFIES', 'GT_EXCEL'는 인터널 테이블로, 데이터를 일시적으로 저장하고 처리하는 데 사용됨.
DATA : LT_ALSMEX TYPE TABLE OF ALSMEX_TABLINE.
  • 데이터베이스 테이블 : 'ZSCARR'는 데이터베이스 테이블로, 'DDIF_FIELDINFO_GET'함수에서 테이블의 필드 정보를 가져오는데 사용.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
	EXPORTING 
    	TABNAME = 'ZSCARR'
    TABLES
     	DFIES_TAB = LT_DFIES.
  • 데이터베이스 딕셔너리: 'DFIES'는 데이터베이스 딕셔너리의 필드정보를 담고 있는 테이블로, 특정 테이블의 필드 메타데이터를 관리.
DATA: LT_DFIES TYPE TABLE OF DFIES.

이 코드에서는 EXCEL 파일을 읽어와서 인터널 테이블에 데이터를 저장하고,
데이터베이스 테이블의 필드 정보를 가져와서 데이터변환 및 매핑을 수행한 수, 최종적으로 데이터 리스트를 생성하는 과정이 포함됨.

profile
아밥 & 프론트엔드 개발자

0개의 댓글