ABAP 기초 포스팅
변수 선언과 데이터 타입
Structure (구조체) 타입 변수 선언
TYPES 구문을 통한 타입 정의
Internal Table 개념, 사용법 정리
반복문 LOOP, WHILE, DO
콘텐츠
ABAP 변수 선언
ABAP 은 타 프로그래밍 언어와 같이 변수를 선언, 사용할 수 있다. 유명한 프로그래밍 언어 C, JAVA 는 앞에 변수 타입이 오고 변수 명이 오는데 (예: String 변수 명) ABAP은 먼저 DATA 구문을 쓴 후 뒤에 변수 명, 타입을 지정한다. 기초적인 변수 선언의 예시는 다음과 같다.
DATA 변수 명 TYPE 타입 명 LENGTH 30.
ABAP(참고: ABAP은 코드 끝에 . 을 붙여야 한다.)
기본적인 네이밍 룰
ABAP은 특이하게 Pretty Print 를 써보면 알겠지만, 기본적으로 프로그래밍 때 대소문자 구분을 하지 않는다. (당연히 안에 들어가는 값은 한다.) 그래서 변수 명을 지을 때 JavaScript 등에서 자주 사용되는 카멜 기법(예: myCar 등 단어 가 연결 될 때 첫 문자를 대문자로 사용하는 기법) 은 사용되지 않고 소, 대문자 그대로 적는다.
그리고 기본적인 네이밍 룰이 있는데 앞에 로컬, 글로벌 변수냐에 따라 L, G를 붙이고 V(Value) 를 붙인 후 변수 명을 적는다.
예를 들면 CAR 라는 변수를 만들 땐 로컬 변수 라면 LV_CAR or lv_car 라 적는 것이다.
ABAP 데이터 타입
ABAP에는 다음과 같은 기본적인 데이터 타입 들이 존재한다.
- C (Character): 고정 길이의 문자열을 저장 (예:
DATA: name TYPE C LENGTH 30.
는 30자 길이의 문자열을 저장할 수 있는 변수 선언. - N (Numeric Character): 숫자만 포함하는 문자열을 저장. 이는 고정 길이이며 앞쪽에 0으로 채워진다. (예:
DATA: year TYPE N LENGTH 4.
) - D (Date): 날짜를 저장. 일반적으로 YYYYMMDD 형식으로 저장된다. (예:
DATA: today TYPE D.
) - T (Time): 시간을 저장. HHMMSS 형식으로 저장된다. (예:
DATA: currentTime TYPE T.
) - I (Integer): 정수를 저장. 예:
DATA: count TYPE I.
- P (Packed Number): 정수나 소수를 저장하는 데 사용되며, 금융 및 계산에 사용. (예:
DATA: amount TYPE P DECIMALS 2.
) - F (Floating Point): 부동소수점 숫자를 저장. (예:
DATA: average TYPE F.
) - STRING: 가변 길이의 문자열을 저장. (예:
DATA: longText TYPE STRING.
) - XSTRING: 가변 길이의 바이너리 데이터를 저장.
- X (Hexadecimal): 고정 길이의 바이너리 데이터를 저장.
이 중 C, N, D, STRING은 정말 자주 사용된다.
이 외에 ABAP 프로그래밍 에선 사용자가 직접 TYPE 을 만들 수도 있다. (이건 다음에 다루겠다.)
데이터 길이(LENGTH)
데이터 길이는 예시와 같이 타입을 지정하고 LENGTH 30와 같은 형태로 작성할 수도 있지만 타입 뒤에 괄호를 통해 작성도 가능하다.
DATA lv_name TYPE C(30). " 30자 문자열
DATA lv_year TYPE N(4). " 4자리 숫자
ABAP데이터에 값 넣기
데이터에 값을 넣는 것은 간단하다. “= 기호 (할당 연산자)” 를 사용한다.
DATA lv_name TYPE C(30). " 30자 문자열
DATA lv_year TYPE N(4). " 4자리 숫자
lv_name = '홍길동'.
ABAP참고 사항
C 타입의 최대 길이
ABAP 에서 C 타입의 최대 길이는 255자 이다. 만약 더 긴 문자열을 사용하고 싶다면 STRING 을 사용한다.
Chain Statement or Chaining Operator( : 기호 )
ABAP 에서 : 기호는 여러 명령어를 한 줄에 연결할 때 사용한다. 예를 들면 변수 선언 구문인 DATA 구문 뒤에 : 를 붙이면 라인 마다 DATA 를 작성할 필요가 없다.
연결 되는 코드는 쉼표(,) 로 연결한다.
DATA: lv_name TYPE C(30), " 30자 문자열
lv_year TYPE N(4). " 4자리 숫자
ABAP타입, LENGTH 생략
타입을 생략 하면 C 타입으로 선언 된다. LEENGTH 생략 시엔 1 자리 변수가 된다.
DATA lv_name(30). " 30자 문자열
DATA lv_name2. " 1자리 문자열
ABAP