본문 바로가기
ABAP

[12/11 - ABAP] data, 구조체, 인터널 테이블

by 반오십 코린이 2023. 12. 12.
728x90
DATA 선언 방법

 

DATA: lc_data type i.
DATA lc_data type i.

 

다음과 같이 선언문 맨 앞에 DATA를 적어주고, 

':' 는 해도 좋고 안해도 되는 것으로 이해.

 

그다음, 선언하고 싶은 데이터 명을 적어주고, type을 지정한다.

대표적으로 integer을 의미하는 i가 있고, 문자열을 의미하는 STRING이 있다.

 

local 변수 즉, 전역 변수로써 선언할 때는 알아보기 쉽게 local의 약자인 lc를 적어주자.

 


구조체 타입 생성

 

TYPES: BEGIN OF tx_ex,
       name(10) type STRING,
       num(20) type STRING,
       END OF tx_ex.

 

구조체를 선언할 때는, 맨 앞에 TYPES를 적어준다. 말그대로, type을 선언하여, 

해당 type에 맞는 구조체 객체를 찍어낼 예정이다.

 

추가적으로, 본인이 명명하고 싶은 구조체의 이름인 tx_ex를 지정하고,

앞서 데이터를 선언한 방식과 동일하게 "변수(길이 제한 정도) type (type 종류)"

로 지정한다.

주의해야할 점은 ","을 문장 끝마다 사용하고, 마지막 종료되는 시점에선 "."을 입력


구조체의 객체 생성

 

Data: st_ex type tx_ex.

 

앞서 만든 구조체 타입을 통해 객체를 찍어보는 과정이다.

type을 본따서 객체를 가져오는 것이기 때문에, Data를 선언하는 과정과 유사하게 진행한다.

 


 

구조체의 객체를 통해 인터널 테이블 생성

 

DATA: lc_tx type table of st_ex

 

앞서 생성한, st_ex를 인터널 테이블로 만드는 과정이다.

유의해야할 문구는 "type table of" 이다.

추후, table의 종류는 여러개 있기 때문에 "type standard table of" or "type hashed table of" or "type sorted table of" 등이 나올 수 있다.

 


 

인터널 테이블 안에 값 입력해서 넣는 법

 

lc_tx-name = 'tk'.
lc_tx-num = '1'.
Append lc_tx.

APPEND VALUE#(
    num = '1'
    name = '강혁') To lc_tx.

 

인터널 테이블의 변수인 name, num을 직접 선언하여 인터널 테이블에 APPEND 해주는 과정이다.

확실하진 않지만, 인터널 테이블을 생성하는 과정에서 INITIAL SIZE 5와 같이 크기를 지정해주지 않으면,

APPEND가 안되는 것으로 알고있다. 혹은, size를 5로 선언하였고,

인터널 테이블 상에 값이 전부 입력 되어있다고 가정했을 때, 사전에 값이 존재하는, 맨 뒤의 값이 덮어 씌워지는 것으로 이해했다.

 

728x90