ABAP System Fields – SYST 시스템 필드 주요 구성요소 설명

SAP ABAP 프로그램을 개발할 때 필연적으로 시스템에서 제공하거나 반환해 주는 변수 값을 많이 사용하게 됩니다.

ABAP 구문이 정상적으로 처리가 되었는지?
LOOP 문에서 현재 처리 중인 Index 위치가 어떻게 되는지?
Internal Tables에서 Index 위치가 어떻게 되는지?
WRITE 문에서 리스트의 현재 Line 위치가 어떻게 되는지?
현재 화면 번호가 어떻게 되는지?
현재 날짜 또는 현재 시간이 변수로 가져와야 한다면?
메세지 ID를 알고자 한다면?

제대로 된 ABAP 프로그램을 개발하기 위해서는 이처럼 정말 다양한 이유로 시스템에서 제공하는 정보를 활용할 수 밖에 없습니다.

이번 글에서는 ABAP System Fields – SYST 시스템 필드 주요 구성요소 설명에 대해 정리해 보겠습니다.

ABAP System Fields – SYST

ABAP 시스템 필드는 SYST라는 ABAP Dictionary 구조(Structure)로 정의하고 있습니다.

▼ 아래 화면은 SYST의 구조 일부를 캡처한 화면입니다.

  • 총 171개의 구성 요소로 된 구조(structure)라는 것을 알 수 있습니다.
  • 각각의 구성 요소가 System Fields(시스템 변수)에 해당합니다.
  • ABAP 프로그램에서 사용할 때는 SYST 대신 SY로 줄여서 사용합니다.
    예: sy-index, sy-subrc, sy-tabix, sy-datum
  • ABAP 프로그램은 대/소문자를 구분하지 않습니다.
ABAP System Fields - SYST 시스템 필드 주요 구성요소 설명

ABAP System Fields – SYST 주요 구성요소 설명

▶ ABAP 프로그램을 개발할 때 비교적 자주 사용하는 시스템 필드(변수)들 입니다.

SY-INDEX : Loop문에서의 현재 인덱스

SY-PAGNO : 리스트의 현재 페이지 번호

SY-TABIX : 인터널테이블 인덱스 (특정 인덱스 위치의 인터널테이블의 값을 가져오거나 변경할 때 사용)

SY-TFILL : 인터널테이블의 레코드(Row) 수 (DESCRIBE TABLE itab LINES l_lines의 l_lines 수)

SY-COLNO : 리스트에서 현재 컬럼 (WRITE로 리스트 출력 후 더블클릭 등 이벤트에서 활용)

SY-LINCT : 리스트에서 한 페이지에 표시되는 라인 수 (REPORT의 LINE-COUNT)

SY-LINNO : 리스트의 현재 라인

SY-LINSZ : 리스트에서 한 페이지에 표시되는 컬럼 수(REPORT의 LINE-SIZE)

SY-LILLI : 리스트에서 선택된 라인 (AT LINE-SELECTION 등의 이벤트 발생시 선택된 라인 활용)

SY-SUBRC : ABAP 구문에 대한 리턴 값 (정상적으로 처리되면 “0” 값을 리턴)

SY-CUCOL : 리스트에에 선택한 가로 위치(Horizontal Cursor Position)

SY-CUROW : 리스트에서 선택한 세로 위치(Vertical Cursor Position)

SY-LSIND : 상세리스트에 대한 인덱스 (처음 1, 상세리스트가 호출될때마다 1씩 증가)

SY-LISTI : 현재 표시된 리스트의 인덱스

SY-LANGU : 현재 사용 언어

SY-DYNNR : 현재 화면 번호

SY-MANDT : 현재 클라이언트 ID

SY-TCODE : 현재 실행중인 트랜잭션 코드

SY-DATUM : 현재 날짜 (20220621 -> 2022.06.21)

SY-UZEIT : 현재 시간 (134533 ->13:45:33)

SY-UNAME : 로그인 ID

SY-LISEL : 더블클릭 등 이벤트 발생시 선택된 라인의 문자열

SY-ULINE : 리스트에서 한 라인을 ‘-‘로 채움

SY-MSGNO : 메세지 ID

SY-MSGV1~4 : 메세지 텍스트 1~4

마무리

여기에서 설명한 시스템 필드는 전체 171개 중에서 빈번히 사용되는 시스템 필드만 나열하였습니다.

추가적인 시스템 필드를 확인하기 위해서 ABAP Dictionary(SE11)에서 SYST로 직접 조회해서 확인해 보시면 됩니다.
ABAP Dictionary 구조 조회에서 구성요소의 내역을 참고하면 해당 시스템 필드에 대해 이해가 가능합니다.





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기