loading
본문 바로가기
SAP/ABAP

[SAP_ABAP] Data Type - 종류 및 선언(2)

by 원쿤짱쿤 2024. 6. 30.
반응형

DATA Type별 출력 테스트

이번시간에는 데이터 타입의 종류에대해서 SE80 에서 직접 출력 하여 테스트 해보겠습니다.

1. ABAP Predefined Type(기본 Type)

# 기본적인 변수 타입 선언, 값 할당, 출력

* 변수 선언
DATA : LV_INT     TYPE I, "정수형
       LV_FLOAT   TYPE F, "소숫점을 포함한 실수형
       LV_DATE    TYPE D, "날짜
       LV_TIME    TYPE T, "시간
       LV_CHAR    TYPE C LENGTH 2, "문자열
       LV_STRING  TYPE STRING, "가변 문자열
       LV_XSTRING TYPE X, "16진수 문자열
       LV_PTYPE   TYPE P DECIMALS 2 , "소숫점 포함 실수형
       LV_NUM     TYPE N LENGTH 10. "숫자형

* 값 할당
LV_INT = 4.
LV_FLOAT = '4.5'.
LV_DATE = SY-DATUM.
LV_TIME = SY-UZEIT.
LV_CHAR = 'Ab'.
LV_STRING = 'AbaP'.
LV_XSTRING = 10.
LV_PTYPE = '12354.23'.
LV_NUM = 1.

* 출력
WRITE : / 'int:', LV_INT.
WRITE : / 'float:', LV_FLOAT.
WRITE : / 'date:', LV_DATE.
WRITE : / 'time:', LV_TIME.
WRITE : / 'char:', LV_CHAR.
WRITE : / 'string:', LV_STRING.
WRITE : / 'xstring:', LV_XSTRING.
WRITE : / 'p type:', LV_PTYPE.
WRITE : / 'num:', LV_NUM.

 

# 출력

 
 
# 구조체 타입 선언, 값 할당, 출력

* 구조체 선언
DATA : BEGIN OF LS_STRUC,
       INT TYPE I,
       DATE TYPE D,
       TIME TYPE T,
       CHAR TYPE C LENGTH 10,
       END OF LS_STRUC.

* 값 할당
LS_STRUC-INT = 999.
LS_STRUC-DATE ='20240624'.
LS_STRUC-TIME = SY-UZEIT.
LS_STRUC-CHAR = 'Hello'.

* 출력
WRITE : / LS_STRUC-INT, LS_STRUC-TIME.

 
# 출력

 

 

2. 프로그램 내에서 정의한 Type(Local Type)

Local Type 변수 선언시 데 여기서 TYPE와 LIKE를 쓰게 된다.
 
TYPE : SAP System 내 존재하는 TYPE를 직접 참조할 때 사용한다.
LIKE : 프로그램 내에서 정의된 것을 참조할 때 사용한다. (즉, Local Type를 참조한다.)

 *Like는 값을 가져오는 것이 아닌 메모리의 형태를 가져오는 것으로 Value는 가져오지 않으니 주의
 *Table Field와 System Field는 TYPE와 LIKE 모두 사용 가능하지만 TYPE를 사용할 것을 권장한다고 한다.
 

* TYPE문을 활용한 변수선언

TYPES : BEGIN OF TY_STRUC,
          NUM1 TYPE I,
          NUM2 TYPE N LENGTH 2,
        END OF TY_STRUC.

DATA : WA_STRUC TYPE TY_STRUC.
DATA : LT_STRUC TYPE TABLE OF TY_STRUC.
DATA : LV_NUM1 TYPE TY_STRUC-NUM1.

*  값 할당
WA_STRUC-NUM1 = 16.
WA_STRUC-NUM2 = 1.
LV_NUM1 = 98920.

* 값 출력
WRITE : / 'wa_struc', WA_STRUC-NUM1, WA_STRUC-NUM2.
WRITE : / 'lv_num1', LV_NUM1.

 

# 출력

 
*LIKE문을 활용한 변수선언

TYPES : BEGIN OF TY_STRUC,
          NUM1 TYPE I,
          NUM2 TYPE N LENGTH 2,
        END OF TY_STRUC.

DATA : WA_STRUC TYPE TY_STRUC.
DATA : WA_STRUC1 LIKE WA_STRUC.

* 값 할당
WA_STRUC1-NUM1 = 10928.
WA_STRUC1-NUM2 = 8.

* 값 출력
WRITE : / 'wa_struc1', WA_STRUC1-NUM1, WA_STRUC1-NUM2.

 

# 출력

 
 

 

3. ABAP Dictionary에서 정의된 Type

 

* 딕셔너리 테이블의 단일 변수 선언
DATA : LV_REGNO TYPE ZTFI_REGNO-REGNO.
* 딕셔너리 데이터 엘레먼트 참조 변수
DATA : LV_DREGNO TYPE ZEFI_REGNO.

* 딕셔너리 테이블 필드를 참조한 구조체 선언
DATA : BEGIN OF STRUC_REGNO,
         REGNO  TYPE ZTFI_REGNO-REGNO,
         NAME   TYPE ZTFI_REGNO-NAME,
         AGE    TYPE ZTFI_REGNO-AGE,
         GENDER TYPE ZTFI_REGNO-GENDER.
DATA: INCLUDE TYPE ZSFI_REGNO, "구조체 Include
       END OF STRUC_REGNO.

* 딕셔너리 테이블과 동일한 구조체 선언
DATA : LS_REGNO TYPE ZTFI_REGNO.
DATA : LT_REGNO TYPE TABLE OF ZTFI_REGNO.

MOVE '9012312030400' TO LV_REGNO.

WRITE : / 'lv_regno', LV_REGNO.

 
#출력

 
 

4. 시스템 변수 Type

# 시스템 변수 타입 선언, 값 할당, 출력

* 시스템 변수 종류
*SY-INDEX: DO문, WHILE문(반복문)에서 현재의 Index
*SY-TABIX: LOOP문에서의 현재 Index
*SY-TFILL: 인터널 테이블의 데이터 건수
*SY-DBCNT: SELECT문 쿼리 실행시 조건에 해당하는 데이터의 건수 리턴
*SY-FDPOS: 문자열의 Byte 리턴
*SY-SUBRC: 쿼리 또는 LOOP, READ TABLE 구문 실행에 대한 리턴코드
*SY-LAUGU: 현재 SAP 시스템 접속 언어코드 리턴
*SY-BATCH: 배치 실행여부 리턴
*SY-DYNNR: 프로그램에서 현재의 스크린 번호 리턴
*SY-REPID: 현재 실행한 프로그램명 리턴
*SY-CPROG: 호출 프로그램명 리턴
*SY-MANDT: 현재 로그인한 SAP 시스템의 클라이언트 번호 리턴
*SY-SYSID: 현재 로그인한 시스템명 리턴
*SY-TCODE: 실행 티코드명 리턴
*SY-UCOMM: 프로그램에서 실행한 Function 코드 리턴
*SY-DATUM: 어플리케이션 서버의 현재일자 리턴
*SY-UZEIT: 어플리케이션 서버의 현재시간 리턴
*SY-UNAME: 현재 로그인한 유저ID 리턴
*SY-DATLO: 현재 로그인한 유저의 로컬 일자
*SY-TIMLO: 현재 로그인한 유저의 로컬 시간
*SY-ZONLO: 현재 로그인한 유저의 타임존

* 시스템 변수 선언
DATA : LV_DATUM TYPE SY-DATUM,
       LV_UZEIT TYPE SY-UZEIT,
       LV_UNAME TYPE SY-UNAME.

* 값 할당
LV_DATUM = SY-DATUM.
LV_UZEIT = SY-UZEIT.
LV_UNAME = SY-UNAME.

* 출력
WRITE : / 'sy-datum:', LV_DATUM.
WRITE : / 'sy-uzeit:', LV_UZEIT.
WRITE : / 'sy-uname:', LV_UNAME.

 

#출력

'SAP > ABAP' 카테고리의 다른 글

[SAP_ABAP] Table 생성  (0) 2025.01.13
[SAP_ABAP] Data Type - 내장함수  (0) 2024.07.21
[SAP_ABAP] Data Type - 종류 및 선언 (1)  (0) 2024.06.30
[SAP_ABAP] View Type 알아보기  (0) 2024.06.03
[SAP_ABAP] ABAP Dictionary란?  (0) 2024.04.24