본문 바로가기

Easy Abap 2.0

[2주차] Chapter 2 Data Type Part 1

 

1. OVERVIEW

 

1) Data Type과 Data Variable의 비교

Data Type Data Variable
ABAP 프로그램에서 사용하는 변수의 타입을 정의하기 위해서 사용 Data Type을 참고하여 프로그램에서 사용할 수 있는 변수
Data Variable(데이터 변수)와 독립적으로 선언하게 됨 Data Type을 참고하여 선언하게 됨
ABAP Dictionary의 타입을 프로그램에서 참고하여 사용할 수 있음. 프로그램의 실행 시점에 메모리를 차지하는 데이터 변수 의미

 

2) Data Type의 종류

 

 (1) Predefined ABAP Type

  • Kernal 레벨에서 정의되어 있는 기본 데이터 타입
  • C, JAVA(c,f,l) 타입과 같이 이미 정의되어 있는 데이터 TYPE

 (2) Local Data Type in Program

  • ABAP 프로그램 내에서 Predefined ABAP Type을 이용하여 Local Type 생성
  • Predefined ABAP Type을 조합하여 여러 필드가 추가된 Structure 타입을 정의하여 사용할 수 있음.

 (3) Global Data Type in ABAP Dictionary

  • 모든 ABAP 프로그램에서 사용할 수 있는 Global Data Type
  • ABAP Dictionary Data Type은 ABAP프로그램 내에서 TYPE 구문을 이용할 수 있음.
  • 즉, T-CODE:SE11에서 생성하는 ABAP Dictionary 오브젝트들은 모든 ABAP 프로그램에서 변수를 선언할 때 데이터 타입으로 사용가능.
  • 예시) Table(Table Field)     Data Type    Data Element    Structure    Table Type

3) Data Variable 선언

 

 (1) Predefined ABAP Type 이용하여 변수 선언

 

DATA : gv_num          TYPE i,

            gv_deci          TYPE f,

            gv_date         TYPE d,

            gv_time          TYPE t,

            gv_text1         TYPE c,

            gv_text2         TYPE c,

            gv_longtext    TYPE string.

 

Predefined ABAP Type

 

 

(2) 프로그램의 Local Type을 이용하여 변수 선언

 

Local 프로그램에서 자주 사용하게 되는 데이터 및 구조를 TYPE으로 선언하여,
프로그램 내에서만 ABAP 기본 데이터 타입처럼 사용할 수 있다.

 

TYPES : BEGIN OF t_struct,

         col1   TYPE   c,

         col2   TYPE   i,                                

         col3   TYPE   d,

         END OF t_struct.  

 

Local TYPE 선언

 

 

(3) ABAP Dictionary Type을 이용하여 변수 선언

 

ABAP Dictionary(Table, Structure, Data Element 등)는 모든 프로그램에서 선언하여 사용할 수 있다.

 

DATA : gv_carrid        TYPE   s_carrid,

            gv_connid      TYPE   sflight-carrid,

            gv_matnr       TYPE   mara-matnr.

 

Type in ABAP Dictionary

 

4) DATA 구문

   (1) TYPE type
         
        데이터 변수의 타입을 정의한다.

       예시) DATA : gv_num     TYPE   i.

 

       ※ 콜론(:) 기호는 동일한 명령어를 쉼표( , )로 구분하여 마침표( . )를 만날 때까지 실행하도록 한다.

           명령어를 수행하고 동일한 기능을 여러 번 실행할 수 있도록 해준다.
          

       예를 들어 다음과 같이 콜론(:) 기호를 이용하여 변수 2개를 한번에 선언할 수도 있다.

       DATA  gv_num1  TYPE I,
       DATA  gv_num2  TYPE I.

                     

       

       DATA :   gv_num1  TYPE I,
                     gv_num2  TYPE I.

 

 

   (2) LIKE num

 

        앞에서 생성한 Data Variable인 gv_num1과 동일한 타입의 변수를 선언할 때 사용된다.

        타입이 있는 모든 데이터 변수(Field, Parameter, Structure, 시스템 변수 등)를 사용할 수 있다.

 

       예시)  DATA :   gv_num2     LIKE   gv_num1,

 

 

   (3) 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.

 

    (4) LENGTH n

 

         필드의 길이를 설정한다. C, N, P, X 타입에만 사용할 수 있다.

         예시)  DATA   gv_num         TYPE  n         LENGTH   2.

 

 

     (5) DECIMALS n 

         Data Type P에서만 사용 가능하며, 1~14 사이의 소수 자리 수를 설정

    

         예시)  DATA    gv_num         TYPE  p          DECIMALS   3.

 

 

5) ABAP 기본 문법

       



 6) ABAP Naming Rule

 

프로그램 개발 방법론 중에 가장 기본이 되는 것은 테이터를 저장하는 변수의 이름을 정하는 규칙이라 할 수 있다.

변수 또는 오브젝트의 이름을 정하는 규칙을 ' Naming Rule' 이라고 한다.

모든 프로그램 언어에서는 가독성을 높이고, 변수 간의 충돌을 피하며 프로그램의 구조적 통일성을 위하여

Naming Rule을 정할 것을 권고하고 있다.

 

SAP에서는 고객사에서 사용할 수 있는 ABAP Dictionary의 Naming Rule은 'Z' 또는 'Y'로 시작하는 것을

기본으로 하고 있으며, INSERT/APPEND와 같은 Keyword는 사용할 수 없도록 필수적인 사항이 있다.

 

6.1) 전역 변수 정리(Global Variable)- 글로벌 변수

 

전역 변수라 함은 하나의 프로그램 또는 함수 그룹 내에서 접근할 수 있는 데이터 유형을 의미.

프로그램 내 모든 영역에서 참조하고 변경할 수 있기 때문에 지역성이 없다.

또한 프로그램이 활성화되어 있는 상태에서는 전역 변수는 항상 메모리를 점유하고 있다.

 

전역 변수 정의는 G로 시작하게 되며 데이터 유형에 따라 다음과 같이 정의함

데이터 타입 접두어 사용 예
필드
(Field)
V 또는 D GV_CARRID 또는 GD_CARRID
구조체
(Structure)
S GS_SFLIGHT
상수
(Constant)
C GC_RATE
인터널 테이블
(Internal Table)
T GT_SFLIGHT
클래스
(Class)
O GO_ALVGRID
레인지
(Range)
R GR_CARRID
데이터 참조 변수
(데이터 오브젝트)
F GF_OBJ

 

 

ABAP 프로그램에만 존재하는 PARAMETERS와 SELECT-OPTIONS 변수는 
각각 'P','S'와 같이 한자리 접두어만 사용하여 구분하도록 한다.

 

 

6.2) 지역 변수 정의(Local Variable)- 로컬 변수

 

지역 변수는 프로그램의 모듈 내에서만 유효한 변수를 의미한다.

모듈이란 말은 함수나 서브루틴 같이 단위 기능을 구현하기 위해 스크립트를 그룹화 한 것이다.

 

지역 변수 정의

 

데이터 타입 접두어 사용 예
필드
(Field)
V 또는 D LV_CARRID 또는 LD_CARRID
구조체
(Structure)
S LS_SFLIGHT
상수
(Constant)
C LC_RATE
인터널 테이블
(Internal Table)
T LT_SFLIGHT
클래스
(Class)
C LO_ALVGRID
레인지
(Range)
R LR_CARRID
데이터 참조 변수
(데이터 오브젝트)
F LF_OBJ