SAP/Abap

[Data Type] Data variable & Data type 기본

i009727 2022. 1. 10. 15:40

[Data Variable]

프로그램 내에서 사용 가능한 변수. Java의 변수와 동일하다.
DATA var [TYPE type | LIKE dobj] ...
  • TYPE type: 선언하고자 하는 변수의 type을 지정한다.
  • LIKE dobj: 해당 명령어 이전에 생성한 변수 dobj와 동일하게 변수의 type을 지정한다.
  • VALUE val: 선언하고자 하는 변수의 초깃값을 지정한다.
  • LENGTH n: 선언하고자 하는 변수의 길이를 지정한다. C, N, P, X 타입에만 사용 가능하다.
  • DECIMALS n: 선언하고자 하는 변수의 소수자리수를 지정한다. P 타입에만 사용 가능하다.

 

[Data type]

프로그램 내에서 사용되는 변수의 타입을 정의하기 위해 사용. Java의 자료형과 동일하다.
TYPES dtype [TYPE type | LIKE dobj]

 

1) Predefined ABAP Type: 이미 kernel 레벨에서 정의되어 있는 기본 데이터 타입

DATA: gv_num       TYPE i,      " 정수 타입
      gv_deci      TYPE f,      " 실수 타입
      gv_date      TYPE d,      " 날짜 타입
      gv_time      TYPE t,      " 시간 타입  
      gv_text1     TYPE c,      " 문자 타입
      gv_text2(2)  TYPE c,      " 문자열 타입
      gv_longtext  TYPE string. " 문자열 타입

 

2) Local Data Type in Program: Predefined abap type을 조합하여 생성한 Structure 데이터 타입

  • TYPES 구문을 사용하여 정의하며, 정의된 type은 해당 프로그램 내에서만 사용가능하기 때문에 local data type이라 한다.
TYPES: BEGIN OF t_struct,       " Local 타입 선언
    col1 TYPE c,                " 문자 타입
    col2 TYPE i,                " 정수 타입
    col3 TYPE d,                " 날짜 타입
    END OF t_struct.

 

3) Global Data Type in ABAP Dictionary

  • Abap의 모든 Dictionary obejct들은 모든 Abap 프로그램 내에서 data type으로 사용할 수 있다.
    • ex) Table, Data type, Data element, Structure, Table type
  • 모든 프로그램에서 사용할 수 있어 global data type이라 한다.
DATA: gv_carrid    TYPE s_carr_id,
      gv_connid    TYPE sflight-carrid,
      gv_matnr     TYPE mara-matnr.

 

[출력 프로그램 예제]

*&---------------------------------------------------------------------*
*& Report ZA02_01
*&---------------------------------------------------------------------*
*& 문자열 타입 변수 선언 및 값 할당 후 출력 예제
*&---------------------------------------------------------------------*
REPORT ZA02_01.

TYPES t_var TYPE c LENGTH 20.      " 길이 20의 문자열 type t_var 선언
DATA gv_var TYPE t_var.            " t_var type의 변수 gv_var 선언

* DATA gv_var TYPE c LENGTH 20.     " local type 정의 생략

gv_var = 'Hellow ABAP'.            " 변수 gv_var 초기화
WRITE gv_var.                      " 변수 gv_var 출력