[SAT ABAP] ABAP의 데이터 형식
업데이트:
Data type: 프로그램에서 사용할 수 있는 데이터 타입을 정의한다
Data type은 Data variable과 독립적으로 선언하게 되며, Data variable은 Data Type을 참고하여 선언하게 된다.
프로그램에서 TYPES 구문을 사용하여 Data type을 선언하면 해당 프로그램에서만 사용할 수 있기 때문에, Local Data type 이라고 부른다.
Local Data type은 이미 정의되어 잇는 ABAP Data를 참고하여 선언하게 된다. Ex: (TYPES dtype TYPE C)
Data Variable: Data type을 참고하여 값을 저장할 수 있는 변수이다.
Data Type을 참고하여 프로그램에서 사용 할 수 있는 변수이다. 프로그램의 실행 시점에 메모리를 차지하는 데이터 변수를 의미한다. ABAP프로그램에서는 Data variable의 이름을 통해서 값에 접근할 수 있다.
"Data type
TYPES dtype [TYPE type | LIKE dobj]
"Data variable
Data var [TYPE type| LIKE dobj]
Data type의 종류
-
Predefined ABAP type
Kernel 레벨에서 정의 되어 있는 기본 데이터 타입이다.
C, JAVA의 (c, f, l) 타입과 같이 이미 정의 되어 있는 데이터 TYPE 이다.
추가로 p, d, t 과 같은 타입들이 존재한다.
-
Local Data type in Program
ABAP프로그램 내에서 Predefined ABAP Type을 이용하여 Local Type을 생성한다.
또한, Predefined ABAP Type을 조합하여 여러 필드가 추가된 Structure타입을 정의하여 사용할 수 있다.
ex) TYPES dtype [TYPE type LIKE dobj]… -
Global Data Type in ABAP Dictionary
모든 ABAP프로그램에서 사용할 수 있는 Global Data Type이다. ABAP Dictionary에서 학습한다.
Table(table field), Data type, Data Element, Structure, Table Type
ex) TYPES : types TYPE table.
DATA: gv_data LIKE table-field …
Type Group을 사용하여 TYPE를 그룹화 하여 사용할 수 있다.
Data Variable 선언
-
Predefned ABAP Type 이용하여 변수 선언 ABAP에서 제공되는 기본 타입을 이용하여 데이터를 선언하는 방식
Data : gv_num TYPE I, gv_deci TYPE f, gv_date TYPE d, gv_time TYPE t, gv_text1 TYPE c, gv__text(2) TYPE c, gv_longtext TYPE string.
-
프로그램의 Local type을 이용하여 변수 선언 Local 프로그램에서 자주 사용하게 되는 데이터 및 구조를 TYPE으로 선언하여, 프로그램내에서만 ABAP 기본 데이터 타입처럼 사용할 수도 있다.
TYPES : BEGIN OF t_struct, Col1 type c, Col2 type c, Col3 type c, END OF t_struct. "Local TYPE 선언 DATA: gs_struct TYPE T_struct, gv_var LIKE gs_struct-col1.
-
ABAP Dictionary의 Type을 이용하여 변수 선언
ABAP Dictionary(Table, Structure, Data Element 등)는 모든 프로그램에서 선언한여 사용할 수 있다.
DATA : gv_carrid TYPE s_carr_id, gv_connid TYPE sflight-carrid, gv_matnr TYPE mara-matnr. "Type in ABAP Dictionary
DATA 구문
데이터 변수를 선언할 때 사용하는 구문이다. 변수명은 언더라인(_) 기호를 포함하여 30자까지 가능하다.
-
TYPE type 데이터 변수의 타입을 정의한다. 위에서 말한 data type의 3가지 종류가 TYEP구문 다음에 올 수 있다.
콜론(: ) 기호는 동일한 명령어를 쉼표(,)로 구분하여 마침표(.) 을 만날 때까지 실행하도록 한다. 변수 두개를 한번에 선언할 수 있다.
DATA: gv_num TYPE i. DATA: gv_num1 TYPE I, gv_num2 TYPE I.
-
LIKE num
앞에서 생성한 Data Variabled인 gv_num1과 동일한 타입의 변수를 선언 할 때 사용 된다.
타입이 있는 모든 데이터 변수(Field, Parameter, Structure, 시스템 변수..)를 사용 할 수 있다.
Data: gv_num2 LIKE gv_num1.
-
VALUE int
모든 데이터 타입은 Initial Value가 존재한다. Data 구문을 사용할 때 Value 옵션을 사용하면 기본 Initial Value 대신에 int로 초기값을 설정한다.
VALUE IS INITIAL 구문을 사용하면 Data Type의 Initial Value로 지정된다.(생략해도 된다)
Constants변수를 선언할때에는 VALUE옵션은 필수 사항이다.
DATA: gv_num TYPE i VALUE 123, gv_flag VALUE 'X', gv_val VALUE IS INITIAL, gv_idx LIKE sy_tabix VALUE 45.
-
LENGTH n 필드의 길이를 설정한다. C, N, P, X 타입에만 사용 할 수 있다.
DATA: gv_num TYPE n LENGTH 2.
-
DECIMALS n Data Type P에서만 사용 가능하며 1~14 사이의 소수 자리 수를 설정한다.
DATA: gv_num TYPE P DECIMALS 3.
-
최종 예시
TYPES t_var TYPE C LENGTH 20.
DATA gv_var TYPE t_var.
gv_var = 'Hellow ABAP'.
WRITE gv_var.