일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- 프로그래머스
- pygame
- SQL
- javascript
- oauth2
- 스프링시큐리티
- springboot
- SQL프로그래머스
- mysql
- kotlin 클래스
- 자바 스트림
- Spring
- 자바스크립트
- SQL 문제풀이
- 스프링
- java8
- spring boot
- js
- Leetcode
- 스프링부트
- LeetCode SQL
- SAP ABAP
- MSA
- python
- 스프링부트 채팅서버
- 오라클
- 코틀린 클래스
- sap ERP
- 구글로그인
- oracle
- Today
- Total
웅겹살의 프로그래밍 삼매경
[ABAP] SAP ERP 변수 ( 정적 변수, 참조 변수, 시스템 변수 ) 본문
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 프로그램의 효율성과 가독성을 높일 수 있다. 다양한 방식으로 직접 실습해 보면서 더욱 익숙해지길 바란다.
'SAP Abap' 카테고리의 다른 글
[ABAP] SAP ERP Function Module 기능모듈 (0) | 2025.03.15 |
---|---|
[ABAP] SAP ERP ABAP 연산자 (0) | 2025.03.14 |
[ABAP] SAP ERP 인터널테이블 internal table 정리 (1) | 2025.03.12 |
[ABAP] SAP ERP 주요 모듈 정리(FI MM SD PP CO) (0) | 2024.07.02 |
[ABAP] Abap Data Type 아밥 데이터 타입 정리 (0) | 2024.07.01 |