Data Type(데이터 타입) : 프로그램에서 사용할 수 있는 데이터의 타입을 정의
Data Variable(데이터 변수)(=Data Object) : 데이터 타입을 참고하여 값을 저장할 수 있는 변수
[Data Type]
TYPES a TYPE type.
TYPES b LIKE variable.
[Data Variable]
DATA: gv_var TYPE type.
DATA: gv_var LIKE variable.
LIKE : 이미 생성된 변수와 같은 데이터타입/변수 선언
TYPE : 데이터 타입을 이용해서 변수/타입 정의
+) inline(인라인) 문법
: ABAP 7.4 이후, 값을 할당하면서 동시에 변수를 선언하는 inline(인라인) 문법이 도입
DATA: gv_var TYPE < LENGTH 4.
gv_var = 'abap'.
DATA(gv_var) = 'abap'.
데이터 타입의 종류
1. Predefined ABAP Type (기본 데이터 타입)
2. Local Data Type (프로그램 내의 로컬 타입)
* 변수 타입
TYPES t_type TYPE C LENGTH 10.
* 구조체 타입
TYPES: BEGIN OF t_str,
emp_no TYPE c LENGTH 10,
emp_name TYPE c LENGTH 20,
END OF t_str.
3. Global Daya Type (글로벌 타입)
tcode: SE11 - TABLE, Data Type, Data Element, Structure, Table Type
이것들은 모든 프로그램에서 사용할 수 있는 데이터 타입이다.
+)분기문
* IF-ELSEIF-ELSE
IF p_val = 100.
gv_grade = 'A+'.
ELSEIF p_val >= 90.
gv_grade = 'A'.
ELSE.
gv_grade = 'F'.
* COND-(WHEN-THEN)
DATA(gv_grade) = COND string( WHEN p_val = 100 THEN 'A+'
WHEN p_val >= 90 THEN 'A'
ELSE 'F'
).
* CASE-WHEN-WHEN OTHERS
CASE p_val.
WHEN 'A+' OR 'A'.
WRITE: '통과입니다.'.
WHEN 'B'.
WRITE: '보통입니다.'.
WHEN OTHERS.
WRITE: '다시 수강하세요.'.
ENDCASE.
* SWITCH (WHEN-THEN)
DATA(gv_text) = SWITCH string( p_val
WHEN 'A+' OR 'A' THEN '통과입니다.'.
WHEN 'B' THEN '보통입니다.'.
ELSE '재수강하세요.'.
).
ABAP 네이밍 룰
| 전역변수 | g~ |
| 지역변수 | l~ |
| 필드 | ~v_, ~d_ |
| 구조체 | ~s_ |
| 상수 | ~c_ |
| 인터널 테이블 | ~t_ |
| 클래스 | ~o_ |
| range | ~r_ |
| 데이터 참조 변수(데이터 오브젝트) | ~f_ |
+) 이전에 발생한 덤프 에러 조회 : tcode:ST22
=> Try-Catch
여러가지 문법
문자열 연결
CONCATENATE 'Hello' 'ABAP' INTO gv_val1. '방법1
gv_val2 = 'Hello' && 'ABAP'. '방법2
탬플릿 문자열 : 파이프 기호(|) 안에 문자열을 넣고, 중괄호 안에 변수를 넣는다. 탬플릿 문자열 연결은 &로 한다.
gv_val = | Hello | & | my name is {gv_val} |.
ALPHA Conversion Routine : 긴 문자열을 화면에 보일 때 간략하게 변환
DATA lv_input TYPE char10 VALUE '123'.
DATA lv_output TYPE char10.
" External → Internal (0 채우기)
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = lv_input
IMPORTING
output = lv_output.
" 결과: lv_output = '0000000123'
" Internal → External (0 제거)
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = lv_output
IMPORTING
output = lv_input.
" 결과: lv_input = '123'
간단하게!
" External → Internal (0 채우기)
lv_output = |{ lv_input ALPHA = IN WIDTH = 10 }|.
" 결과: '0000000123'
" Internal → External (0 제거)
lv_output = |{ lv_input ALPHA = OUT }|.
" 결과: '123'
+) help : 키워드에 커서를 올려 두고 F1
시스템 일자 변수 sy-datum, sy-datlo의 차이점
SAP 시스템의 표준 시간대 시스템 설정 : Tcode: SPRO
sy-datum : SPRO(IMG)에서 설정한 System time zone 기준으로 시간 설정
sy-datlo : SPRO(IMG)에서 설정한 User's time default time zone / 사용자 프로파일의 Personal Time zone 기준으로 시간 설정
정규식(REGEX)
: 일정한 규칙으로 문자열을 검색해 치환할 목적으로 사용하는 공통 표현식
= 일정한 규칙이 있는 문자열 검색!
프로그램 내의 로컬 타입
TYPE 선언 : 그 프로그램에서만 특별한 타입으로 사용
TYPES t_char10(10) TYPE c.
DATA gv_val1 TYPE t_char10.
gv_val1 = '12345hello'.
Structure Type 선언 : 여러 개의 필드로 이루어진 구조체 타입 선언
TYPES: BEGIN OF t_ren,
name TYPE c LENGTH 20,
country TYPE c LENGTH 15,
city TYPE c LENGTH 10,
END OF t_ren.
DATA gs_people TYPE t_ren. '구조체 타입 선언
gs_people-name = '홍길동'.
gs_people-country = '대한민국'.
gs_people-city = '서울'.
DATA로 바로 구조체 변수 선언도 가능~
DATA: BEGIN OF t_ren,
name TYPE c LENGTH 20,
country TYPE c LENGTH 15,
city TYPE c LENGTH 10,
END OF t_ren.
gs_people-name = '홍길동'.
gs_people-country = '대한민국'.
gs_people-city = '서울'.
INCLUDE TYPE 선언 : 구조체 타입 안에 타입 넣음
'Study > SAP' 카테고리의 다른 글
| SAP Korea STAR Program - developer 지원 후기 (1) | 2026.05.18 |
|---|---|
| [SAP] Package 삭제 방법 (0) | 2026.05.11 |
| [SAP] Local Objects 백업: 실습 코드 모음 (0) | 2026.01.26 |
| [SAP] 과제, 실습 문제: 결과 화면 모음 (0) | 2026.01.26 |
| [SAP] 정리4 - 다양한 프로그래밍 방법 (0) | 2026.01.07 |