: 말 그대로 사용되는 data 종류
→ C를 예로 들어보면 int, float, double 이런 걸 의미!
Type:
Predefined Data Type
: ABAP에서 미리 정의된 데이터 유형
Global Data type in ABAP Dictionary
: ABAP Dictionary 에 정의된 db table, table field, data element 의 유형을 참조해서 사용 가능
→ 모든 ABAP 프로그램에서 사용 가능한 Global Data Type
Local Data Type in program
: 기본 데이터 유형 (predefined data type)을 조합해서 ABAP 프로그램 내에서 새로운 Data Type을 정의할 수 있음
선언 방법:
이미 정의되어있는 ABAP Data Type (= Predefined Data Type)을 사용하여 해당 프로그램 소스 코드 내에서 `TYPES`를 이용해 LOCAL DATA TYPE 정의
TYPES DATA_TYPE [TYPE type | LIKE dobj]
→ ex)
TYPES:
t_city(20) TYPE c, " 20자 길이의 도시 이름 유형
t_price TYPE p DECIMALS 2, " 소수점 2자리 포함 가격 유형
t_customer LIKE zcustomer. " zcustomer 구조체와 동일한 유형
: 말 그대로 변수!
→ C를 예로 들면 int a, char message
Predefined ABAP Type을 이용해 변수 선언
: ABAP에서 제공되는 기본 타입 이용해 데이터 선언
ex 1.
DATA lv_name TYPE string. " 가변 길이 문자열
DATA lv_city(20) TYPE c. " 고정 길이 문자열 (최대 20자)
ex 2.
DATA:
lv_name TYPE string, " 고객 이름
lv_age TYPE i, " 고객 나이
lv_email TYPE string, " 고객 이메일
lt_orders TYPE TABLE OF zorder. " 고객 주문 내역 테이블
→ 아래는 table 참조 (local)
프로그램의 local type을 이용한 변수 선언
: 프로그램 내부에서 TYPES를 이용해 data 및 structure를 미리 선언 후 새롭게 define해 사용하기
→ C에서 code내에서 위쪽에서 int, string, char등이 들어있는 structure를 선언하고 다시 밑에서 새로운 이름으로 define하는 것과 동일
ex.
// 1. 구조체 정의
struct Person {
char name[50];
int age;
};
...
struct Person Person_t;
ABAP ex.
TYPES : BEGIN OF t_person,
name TYPE string,
age TYPE i,
END OF t_person.
*struct 선언
**DATA : ls_person TYPE t_person.**
<aside> ➕
structure 선언 방법은?
TYPES : BEGIN OF structure_이름,
변수_이름 TYPE 변수_종류,
변수_이름 TYPE 변수_종류,
END OF structure_이름
</aside>
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.
➕ 정리
DATA gv_num1 TYPE I,
DATA gv_num2 TYPE I.
DATA : gv_num1 TYPE I,
gv_num2 TYPE I.
→ : 를 사용하면 더 편한듯 ~
LIKE: 이전에 선언한 변수와 동일한 TYPE을 사용하고 싶을 때 사용