반응형
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 |