메뉴 건너뛰기

SAP 한국 커뮤니티

ABAP [선언문] 명령어 정리표 Rev01

문바이 2011.05.18 11:53 조회 수 : 6204 추천:6

선언문을 정리해 보았습니다.

-기존 자료실의 내용이 부실한것 같이 기존내용을 수정/이동 했습니다.--

 

Data선언 유형 학습 전 사전지식

컴퓨터는 CPU/메모리/저장장치/입출력 장치등으로 구성되어 있다.
우리가 만드는 프로그램의 경우, 저장장치에 저장이되고 프로그램이 수행될때 메모리로 올린후
CPU가 메모리를 읽으면서 프로그램이 구동되어 진다.
이 때 프로그램의 코드 자체가 메모리에 할당도 되어지지만 프로그램을 구동과정에 필요한 변수/상수
등의 변수들이 메모리에 할당되어 사용되어 지게 된다.
그럼 컴퓨터는 메모리에 변수를 어떻게 할당 할까?
컴퓨터 메모리는 띠와 같와서 각 메모리에 주소가 할당되어져 있다.
우리가 변수에 저장하려는 것인 숫자인경우 그리고 그 숫자가 2^16=65536 이 범위내에 존재하는경우
메모리 변수를 16bit로 할당 사용가능하다/ 문자의 경우 1개의 문자를 저장하는 2^8=256이면 가능하다. 
이와마찬가지로 모든 변수에 저장공간에 뭘저장하여 사용할지의 목적에 따라 메모리의 구역을 할당하게 되는데
이것은 마치 설계도를 가지고 메모리구역을 자르는 것처럼 보인다.

ABAP에서는 이러한 행위를 이렇게 부른다.

DATA TYPE

메모리 구역을 정해진 설계에 따라 자를수 있도록 만든 설계도면

DATA OBJECT

DATA TYPE에 의해 메모리에 할당된 구역자체 흔히 (DATA VARIANT)라고도 한다

변수선헌 유형

TYPE

Data Type을 참조해서 변수를 선언할 때 사용한다.

TYPE REF TO

Data Type을 참조해서 변수를 선언할 때 사용한다.( 객체선언시 사용)

LIKE

Data Object를 참조해서 변수를 선언할 때 사용한다

Internal Table 선언유형 (3가지 방식)

Local Table Type

Type 명령을 통해 Program내부에서만 통용되는 선언방식으로 만든다

Implict Table Type

ABAP Dic Table을 참고하여 만든다

Global Table Type

ABAP Dic Table Type을 참고하여 완벽하게 만든다

 

명령어

유형

설명

예제

CONSTANTS

선언문

(상수)

DATA명령과 매우유사하며,
DATA명령대신 [CONSTANTS]명령을 사용

초기값[VALUE]가 존재한다.

CONSTANTS : myname(1) VALUE 'gil dong',
                     birthday TYPE D VALEU '20070905',
                     zero TYPE I VALUE IS INITIAL."    

STATICS

선언문

정적

변수

STATIC 변수를 사용할 때 DATA와 유사하게 사용

 [서브루틴등에서 활용한다.] 

tables :

table-wa

명시적

테이블선언

명시적 테이블선언 

프로그램에서 DB Dic멤버임을 몰라 오류가 발생할때

확실하게 알려준다.
개체탐색기:[Dictionary 구조]에 표시됨

TABLES : scarr.
SELECT Single * FROM scarr.
1) 프로그램 내에서 scarr는 [Table work area]를 선언

    그 이후에 구조체에 데이터를 한번에 넣을 수 있다
2) select-option에서 ABAP Dic참조로 사용하기

    위한 명령

data :

변수명

변수

선언

선언형에 type이 지정되어 있지 않으면.
Character 1 byte로 설정된다.

DATA : gv_test01.
DATA : gv_test01(1) TYPE c.
2개의 변수선언 형식은 동일하다

data :

이름like유형

변수

선언

RecordSet with buffer ref Table-wa

DATA : GT_test01 LIKE scarr occurs 0 WITH HEADER LINE.
[scarr TABLE와 동일한 schema로 RecordSet선언 Fetch포함]
[rel 3.x 이전방식에서는 모든 itab에 Header Line이 있었고
 위와같이  occurs 0 등의 명령은 지금도 계속사용되고있음]

data:

이름like유형

value 초기값

변수

선언

RecordSet ref Table-wa
Structure.[Rel 3.x 이전 구형방식임, 비추방식]
[Occur를 이용하면 Standard Table을 의미함]
[객체지향 개념이 도입되면서 사용자제요망]

DATA : GT_test01 LIKE scarr occurs 0,
           GS_test01 LIKE scarr.
[scarr TABLE와 동일한 schema로 RecordSet선언]
[scarr Table과 동일한 Schema로 구조체선언]

data :

이름like유형

value 초기값

변수

선언

RecordSet ref Table-wa
Structure. [Rel 4.x 이후 신형방식임, 강추방식]

DATA : GT_test01 TYPE STANDARD TABLE OF scarr INITAL SIZE 0, GS_test01 TYPE scarr.

data :begin of

이름 like 유형

value 초기값

변수

선언

RecordSet ref User Definition

DATA : BEGIN OF GT_test01 OCCURS 0,
     mandt LIKE scarr-mandt,
     carrid LIKE scarr-carrid,
     carrname LIKE scarr-carrname,
END OF GT_test01.

type :

begin of

이름 like 유형

value 초기값

구조체

선언

RecordSet Schema ref User Definition

TYPES : BEGIN OF GS_test01,
     mandt LIKE scarr-mandt,
     carrid LIKE scarr-carrid,
     carrname LIKE scarr-carrname,
END OF GS_test01.

type :

begin of

이름 like 유형

value 초기값

구조체

선언

RecordSet Schema ref User Definition

TYPES : BEGIN OF GS_test01.
     INCLUDE STRUCTURE z3qmt0170.
     TYPES : f_col TYPE lvc_t_scol,
                 f_tab TYPE lvc_t_styl.
TYPES : END OF GS_test01.

type :

begin of

이름 like 유형

value 초기값

구조체

선언

RecordSet Schema ref User Definition
[Nested Structure]

TYPES : BEGIN OF friend.
     INCLUDE TYPE people AS person.
     TYPE : address TYPE c LENGHT 20,
                telno LIKE scarr-carrname,
END OF friend.

type :

begin of 이름

like 유형

value 초기값]

구조체

선언
[type group]

RecordSet Schema ref User Definition
[Dictionary Type-Group 활용]

ABAP Dictionary를 통해서

TYPE-GROUP를 미리 저장해 두어야 한다. [최초 개발시 많이사용]

TYPE-POOLS ztgrp.
DATA : dat1 TYPE ztgrp_typ1,
           dat2 TYPE ztgrp_typ2 VALUE '1.23'.

data :

이름 like 유형

변수

선언

Field

Interger

DATA : GV_test01 LIKE scarr-url,
           GV_test02 TYPE I VALUE 0.
[scarr.url Field 유형으로 gv_test01을 선언하라.]
[Interger type으로 gv_test02 = 0을 선언하라.]

data :

이름 type ref to

변수

선언

Class inherit

DATA : Go_grid TYPE REF TO cl_gui_alv_gird.
[cl_gui_alv_gird라는 Class를 참조한다. 상속받기위함 ]

data :

이름 range of type

변수

선언

Range [Select Option]변수선언

DATA : r_date type RANGE OF d.