0v0__DEV

[Chapt02.Data Type] 시스템 변수(System Variables) & SY-DATUM과 SY-DATLO 본문

SAP BASIC/EASY ABAP

[Chapt02.Data Type] 시스템 변수(System Variables) & SY-DATUM과 SY-DATLO

0v0_삐약 2024. 7. 11. 20:31
728x90

1. 시스템 변수란?

프로그램 실행 중 시스템에 의해 자동으로 업데이트 되는 변수 

시스템 변수로 사용자의 정보, 시스템 정보 등 쉽게 얻을 수 있음 

SE11에서 SYST 검색하면 시스템 변수 확인 가능.

DESCRIPTION에 대략적으로 잘 나와있음 검색하여 적절한 변수 찾기 가넝

2. 자주 사용하는 시스템 변수

 프로그램 생성 시 자주 사용하는 시스템 변수 

변수 의미 프로그램 사용 시 사용 예시
SY-UNAME 로그인한 사용자의 이름(아이디) CRUD 후 DB 저장 시 생성자, 수정자로 입력 
SY-DATUM 현재 시스템 날짜 CRUD 후 DB 저장 시 생성일자, 수정 일자로 입력 
SY-UZEIT 현재 시스템 시간 CRUD 후 DB 저장 시 생성시간, 수정 시간으로 입력 
SY-TCODE 실행중인 트랜잭션 코드 - CALL TRANSACTION 'T-CODE'
- 한 프로그램에 대해 권한/기능 등으로 분리하여 여러개 티코드 생성
SY-SUBRC 실행된 코드의 성공, 실패 결과  SELECT, MODIFY 등 명령어 실행 이후 결과 확인 
IF SY-SUBRC = 0. 등 
SY-INDEX LOOP 라인 번호 LOOP 돌면서 현재 몇 번째 실행인지 체크 
SY-TABIX ITAB의 인덱스 ITAB의 몇 번째 행인지 체크 
SY-BATCH BATCH 프로그램 실행 시 'X'  배치 프로그램 실행중인지 체크 , 사용자가 실행할 때와 배치로 돌아갈 때 분기해서 프로그램 생성 가능 
SY-DBCNT SELECT 된 레코드 개수  
SY-UCOMM 사용자가 실행하는 펑션코드  
SY-REPID 레포트 프로그램 ID  
SY-DYNNR 현재 스크린 넘버   
SY-LANGU 로그온 언어 키  텍스트 테이블 불러올 때 WHERE 조건으로 사용
SY-MSGTY 메세지 타입  
SY-MSGID 메세지 아이디  
SY-MSGNO 메시지 넘버  

3. SY-DATUM & SY-DATLO (SY-UZEIT & SY-TIMLO)

변수 의미
SY-DATUM IMG에서 세팅한 SYSTEM TIME ZONE 기준 시간
SY-DATLO IMG에서 세팅한 USER'S TIME DEFAULT TIME
또는 사용자 프로파일에 설정된 TIME ZONE을 기준으로 시간 설정 

 

예 )

대한민국 시간은 중국 시간보다 1시간 빠름 

 

중국(UTC+8 TIME ZONE)에 공장이 있고, 본사가 한국에 있는 GLOBAL 업체가 있음 

중국 사용자들은 USER TIME ZONE을 이용해 현재 시간을 인식해야 함

SY-DATUM 시스템 변수를 프로그램에서 사용하면 1시간 빠른 한국시간이 반환됨

=> SY-DATLO 시스템 변수가 사용자 현지 시간에 맞게 설정된 것 

 

DB에 저장할 때에는 SYSTEM TIME 기준의 시간, 일자로 저장

DISPLAY 할 때에는 LOCAL TIME 기준으로 변환 필요

  서버 기준 LOCAL 기준
DATE SY-DATUM SY-DATLO
TIME SY-UZEIT SY-TIMLO
728x90