2025. 3. 19. 18:34ㆍABAP
1. Data Type
: 말 그대로 사용되는 data 종류
→ C를 예로 들어보면 int, float, double 이런 걸 의미!
- Type:
1. Predefined Data Type: ABAP에서 미리 정의된 데이터 유형
-
-
- 숫자 (I, P, F)
- 문자 (C, String)
- 날짜 (D, T)
-
2. Global Data type in ABAP Dictionary
: ABAP Dictionary 에 정의된 db table, table field, data element 의 유형을 참조해서 사용 가능
→ 모든 ABAP 프로그램에서 사용 가능한 Global Data Type
3. Local Data Type in program
: 기본 데이터 유형 (predefined data type)을 조합해서 ABAP 프로그램 내에서 새로운 Data Type을 정의할 수 있음
- 선언 방법:
이미 정의되어있는 ABAP Data Type (= Predefined Data Type)을 사용하여 해당 프로그램 소스 코드 내에서 TYPES를 이용해 LOCAL DATA TYPE 정의
TYPES DATA_TYPE [TYPE type | LIKE dobj]
→ ex)
TYPES : t_city(20) TYPE c, " 20자 길이의 도시 이름 유형
t_price TYPE p DECIMALS 2, " 소수점 2자리 포함 가격 유형
t_customer LIKE zcustomer. " zcustomer 구조체와 동일한 유형
2. Data Variable
: 말 그대로 변수!
→ C를 예로 들면 int a, char message
- 변수 선언 방법
1. Predefined ABAP Type을 이용해 변수 선언
: ABAP에서 제공되는 기본 타입 이용해 데이터 선언
ex 1.
DATA lv_name TYPE string. " 가변 길이 문자열
DATA lv_city(20) TYPE c. " 고정 길이 문자열 (최대 20자)
ex 2.
DATA: lv_name TYPE string, " 고객 이름
lv_age TYPE i, " 고객 나이
lv_email TYPE string, " 고객 이메일
lt_orders TYPE TABLE OF zorder. " 고객 주문 내역 테이블
→ 아래는 table 참조 (local)
2. 프로그램의 local type을 이용한 변수 선언
: 프로그램 내부에서 TYPES를 이용해 data 및 structure를 미리 선언 후 새롭게 define해 사용하기
→ C에서 code내에서 위쪽에서 int, string, char등이 들어있는 structure를 선언하고 다시 밑에서 새로운 이름으로 define하는 것과 동일
ex.
// 1. 구조체 정의
struct Person {
char name[50];
int age; };
...
struct Person Person_t;
ABAP ex.
TYPES : BEGIN OF t_person,
name TYPE string,
age TYPE i,
END OF t_person. *struct 선언
DATA : ls_person TYPE t_person.
➕structure 선언 방법은?
TYPES : BEGIN OF structure_이름,
변수_이름 TYPE 변수_종류,
변수_이름 TYPE 변수_종류,
END OF structure_이름
3. ABAP Dictionary의 Type활용해 변수 선언
: ABAP Dictionary에 있는 Table, Structure, Data Element 등을 가져와 선언 가능
DATA: gv_carrid TYPE s_carr_id,
gv_connid TYPE sflight-carrid,
gv_matnr TYPE mara-matnr.
3. 변수 선언 방법
- 기본 선언 방법
DATA gv_num1 TYPE I, DATA gv_num2 TYPE I.
➕ 정리
DATA : gv_num1 TYPE I, gv_num2 TYPE I.
→ : 를 사용하면 더 편한듯 ~ (오노 여기 너무 깨져버려...)
2. LIKE
: 이전에 선언한 변수와 동일한 TYPE을 사용하고 싶을 때 사용
ex.
DATA : gv_num2 LIKE gv_num1
3. VALUE
: 변수에 값을 저장하고 싶을 때 사용
➕ VALUE IS INITIAL은 default로 설정된 값으로 초기값 설정할 수 있게 해줌 (생략 가능)
❗ Constants 변수의 경우 VALUE로 초기값 설정 필수
ex.DATA: gv_nume TYPE i VALUE 123, gv_flag VALUE X, gv_val VALUE IS INITIAL, " 초기화 (생략 가능) gv_idx LIKE sy-tabix VALUE 45.
4. LENGTH n
: 필드의 길이 설정. C, N, P, X 타입만 사용 가능 !
➕ C: character
❓엇 그렇다면 c와 string의 차이는 뭘까요?
⇒ c는 선언 시 LENGTH를 통해 길이를 명시. So, 고정된 길이를 가짐. 성능은 빠름 !
⇒ string은 동적으로 메모리를 할당. 길이를 명시하지 않아도 됨 ~ 성능이 C에 비해 상대적으로 느림. (malloc가 내장되어있다는 느낌 !)
➕ N: 0-9, 공백, 부호(+,-) ⇒ 숫자 연산보다는 숫자 형태의 문자열을 포함 ex. 전화번호, 우편번호
➕P: 소수점 숫자
➕DECIMALS : 소수점 이하 자릿수 지정할 때 사용
➕X: 16진수 (0-9, A-F)
ex. binary 데이터, 시스템 내부 값
🖥️ 코드 적어보기
- T-Code: SE80

2. Package 선택

3. Package 선택 후 Create > Program

4. program 이름 입력

5. 코드 작성 : 뭘 작성해보는게 좋을까 고민중 역시 처음에는 hello world지 !

4. ABAP 기본 문법
- 코드 .로 마무리.
- 주석 처리 :
- * : 1 라인 주석 처리
- “ : 코드 뒷 부분에서 주석 처리
- 문자열은 '' 로
- 명령어 사이는 SPACE로
5. ABAP Naming Rule
: 시스템 내부 룰을 따라야 함.
일반적으로 지켜지는 rule을 한번 알아보자 !
- Variable 정의 rule
|
데이터 타입
|
Prefix
|
사용 예 (Glo.)
|
사용 예 (Loc.)
|
|
필드
|
V 또는 D
|
GV_CARRID (D)
|
LV_CARRID
|
|
구조체
|
S
|
GS_SFLIGHT
|
LS_SFLIGHT
|
|
상수
|
C
|
GC_RATE
|
LC_RATE
|
|
인터널 테이블
|
T
|
GT_SFLIGHT
|
LT_SFLIGHT
|
|
클래스
|
O
|
GO_ALVGRID
|
LO_ALVGRID
|
|
RANGE
|
R
|
GR_CARRID
|
LR_CARRID
|
|
데이터 참조 변수
|
F
|
GF_OBJ
|
LF_OBJ
|
6. Function
: 왠지 쓸 수도 있는 함수를 적어본다
<string 관련 함수>
|
명령어
|
의미
|
|
FIND
|
해당 글자 있으면 시스템 변수 SY-SUBRC = 0 반환
|
|
REPLACE
|
문자 대체
|
|
TRANSLATE
|
대소문자를 변경
|
|
SHIFT
|
왼쪽으로 한 칸씩 이동
|
|
CONDENSE
|
공백을 제거하여 왼쪽으로 정렬 NO-GAPS와 주로 사용
|
|
OVERLAY
|
character의 빈 곳을 채우고, 채워져 있는 곳을 덮어쓰지 않음
|
|
CONCATENATE
|
두 문자열 합치기
|
|
SPLIT
|
기준 문자를 중심으로 나누기
|
노션에서 블로그로 옮기니까 다 깨진다 화가난다.
시간이 낭비돼서 짜중나!
이제는 개발한것만 올리겟어. 흥.

'ABAP' 카테고리의 다른 글
| Package & CTS (0) | 2025.03.19 |
|---|---|
| SAP 실습 환경 설정 / SAP 서버 설치 / SAP 실습 서버 설치 / ABAP (3) (0) | 2025.03.19 |
| SAP 실습 환경 설정 / SAP 서버 설치 / SAP 실습 서버 설치 / ABAP (2) (0) | 2025.03.19 |
| SAP 실습 환경 설정 / SAP 서버 설치 / SAP 실습 서버 설치 / ABAP (1) (0) | 2025.03.19 |