웅겹살의 프로그래밍 삼매경

[ABAP] SAP ERP 변수 ( 정적 변수, 참조 변수, 시스템 변수 ) 본문

SAP Abap

[ABAP] SAP ERP 변수 ( 정적 변수, 참조 변수, 시스템 변수 )

웅겹사r☆ 2025. 3. 13. 07:00
728x90

 

 

ABAP 변수(Variable) 개요

변수는 프로그램에서 특정 값을 저장하고 사용할 수 있도록 메모리 공간을 할당하는 데이터 개체이다. 사용자는 ABAP 문을 통해 변수의 값을 변경할 수 있으며, 변수의 메모리 크기, 값의 범위, 수행 가능한 연산은 해당 변수의 유형에 따라 결정된다.

ABAP에서 변수를 사용하려면 먼저 선언해야 하며, 기본적인 변수 선언 문법은 다음과 같다.

DATA <변수명> TYPE <자료형> VALUE <초기값>.
  • <변수명>: 변수의 이름으로 최대 30자까지 지정할 수 있다.
  • <자료형>: 변수의 데이터 유형을 지정한다.
  • <초기값>: 변수의 초기값을 지정하며, 생략하면 기본 초기값이 설정된다.

다음은 변수 선언의 예제이다.

DATA: d1 TYPE C LENGTH 10,   " 문자형 변수 선언
      d2 TYPE d1,            " d1과 동일한 타입의 변수 선언
      minimum_value TYPE I.   " 정수형 변수 선언

ABAP에서는 크게 정적 변수, 참조 변수, 시스템 변수의 세 가지 변수를 사용할 수 있다. 아래에서 각 변수 유형을 자세히 살펴보겠다.


1. 정적 변수(Static Variables)

정적 변수는 특정 프로그램 실행 범위 내에서 고정적으로 존재하는 변수로, 서브루틴, 함수 모듈, 정적 메서드 내부에서 선언된다. 정적 변수의 수명은 선언된 범위 내에서만 유지된다.

정적 변수 선언 방법

  • DATA 문을 사용하여 프로그램 내부에서 선언 가능하다.
  • CLASS-DATA 문을 사용하면 클래스 내부에서 정적 변수를 선언할 수 있다.
  • PARAMETERS 문을 사용하여 선택 화면에서 입력 필드와 연결된 변수를 선언할 수 있다.
  • SELECT-OPTIONS 문을 사용하여 선택 화면에서 여러 값을 입력받는 변수를 선언할 수 있다.

예제: PARAMETERS를 이용한 정적 변수 선언

PARAMETERS: name(10) TYPE C,             " 문자열 변수 (최대 10자)
            class TYPE I,                " 정수형 변수
            score TYPE P DECIMALS 2,      " 소수점 이하 2자리까지 표현하는 PACKED 변수
            connect TYPE SFLIGHT-CARRID. " 데이터 딕셔너리 필드 참조 변수

위 코드를 실행하면 선택 화면에서 변수를 입력할 수 있으며, 다음과 같은 출력을 생성할 수 있다.

NAME: AliceKim
CLASS: 5
SCORE: 87.60
CONNECT: BA

2. 참조 변수(Reference Variables)

참조 변수는 특정 데이터 객체 또는 클래스의 인스턴스를 가리키는 변수이다. 동적 객체를 다루는 데 유용하며, 참조 변수를 선언하려면 TYPE REF TO 키워드를 사용한다.

참조 변수 선언 방법

DATA <참조변수> TYPE REF TO <자료형> VALUE IS INITIAL.
  • TYPE REF TO는 특정 타입의 객체를 참조하는 변수를 선언하는 데 사용된다.
  • VALUE IS INITIAL을 추가하면 초기값이 NULL 상태로 설정된다.

예제: 참조 변수를 활용한 동적 객체 생성

DATA: ref_customer TYPE REF TO zcustomer.

CREATE OBJECT ref_customer.

위 코드는 zcustomer 클래스의 인스턴스를 생성하고, 참조 변수 ref_customer가 이를 가리키도록 한다.


3. 시스템 변수(System Variables)

시스템 변수는 ABAP 런타임 환경에서 자동으로 설정되며, 현재 시스템의 상태나 프로그램 실행 정보를 담고 있다. SY- 또는 SYST- 접두사를 사용하여 접근할 수 있다.

주요 시스템 변수 목록

시스템 변수설명

SY-ABCDE 알파벳 코드
SY-DATUM 현재 시스템 날짜
SY-DBSYS 데이터베이스 시스템
SY-HOST 애플리케이션 서버 이름
SY-LANGU 로그인 언어
SY-MANDT 클라이언트 번호
SY-OPSYS 운영 체제
SY-SAPRL SAP 릴리즈 버전
SY-SYSID 시스템 ID
SY-TCODE 현재 실행 중인 트랜잭션 코드
SY-UNAME 현재 사용자 ID
SY-UZEIT 현재 시스템 시간

예제: 시스템 변수 활용

WRITE: / 'SY-ABCDE', SY-ABCDE,
       / 'SY-DATUM', SY-DATUM,
       / 'SY-DBSYS', SY-DBSYS,
       / 'SY-HOST ', SY-HOST,
       / 'SY-LANGU', SY-LANGU,
       / 'SY-MANDT', SY-MANDT,
       / 'SY-OPSYS', SY-OPSYS,
       / 'SY-SAPRL', SY-SAPRL,
       / 'SY-SYSID', SY-SYSID,
       / 'SY-TCODE', SY-TCODE,
       / 'SY-UNAME', SY-UNAME,
       / 'SY-UZEIT', SY-UZEIT.

출력 예:

SY-ABCDE  ABCDEFGHIJKLMNOPQRSTUVWXYZ
SY-DATUM  15.03.2025
SY-DBSYS  HANA
SY-HOST   server123
SY-LANGU  FR
SY-MANDT  800
SY-OPSYS  Windows
SY-SAPRL  756
SY-SYSID  XYZ
SY-TCODE  MM01
SY-UNAME  ADMINUSER
SY-UZEIT  14:22:50

4. 마무리

이 글에서는 ABAP의 세 가지 주요 변수 유형(정적 변수, 참조 변수, 시스템 변수)에 대해 살펴보았다.

  • 정적 변수는 프로그램의 특정 실행 범위 내에서 유지되는 변수로, 일반적인 데이터 저장에 사용된다.
  • 참조 변수는 객체나 데이터 구조를 동적으로 가리키는 변수로, 동적 프로그래밍에서 자주 활용된다.
  • 시스템 변수는 실행 환경에서 자동으로 설정되며, 프로그램 실행 정보를 제공하는 역할을 한다.

각 변수를 적절히 활용하면 ABAP 프로그램의 효율성과 가독성을 높일 수 있다. 다양한 방식으로 직접 실습해 보면서 더욱 익숙해지길 바란다.

728x90
Comments