Data Type 종류
1. 고정 길이를 가지는 기본 Predefined ABAP Type
ABAP은 고정 길이를 가지는 8가지 기본 Data Type을 제공하고 있다.
아래 표는 Data Type이 표현할 수 있는 길이와 초기값을 설명한다.
초기 길이 | 가능 길이 | 초기값 | 의미 | |
Numeric Types | ||||
I | 4 | 4 | 0 | Integer (정수) 1) 정수가 아닌 것은 반올림 2) Counter, Item 수 Index 등에 쓰임 |
F | 8 | 8 | 0 | Floating point number (부동 소수점 수) 1) 지수 형태로 표현됨 2) 내부적으로 Binary System으로 전환될 때 반올림 에러가 발생할 수 있음 3) 높은 정확도를 요구한다면 TYPE P를 사용해야하며, 매우 작거나 큰 수라면 TYPE F를 권장함 4) Value 범위가 넓은 경우나, 반올림 오류가 중요한 사항이 아닐 경우 TYPE F를 사용함 |
P | 8 | 1-16 | 0 | Pakced number 1) 소수 자리를 허용 2) 가용 size1-16 byte 3) 소수는 최대 14자리 설정 4)프로그램 속성 setting 시 Fixed point arithmetic 체크해야함, 그렇지 않을 경우 TYPE P는 정수로 표현됨 5) 정확한 계산을 요하는 Business Calculation 목적으로 사용됨 |
Character Types | ||||
C | 1 | 1-65535 | '...' | |
D | 8 | 8 | '00000000' | |
N | 1 | 1-65535 | '0 ...0' | |
T | 6 | 6 | '000000' | |
Hexadecimal(16진수) Type | ||||
X | 1 | 1-65535 | X'0...0' | 프린트 언어와 그래픽 관련된 영역에서 많이 사용 |
1.1 Numeric Opera/tion(연산자)
1) Basic Arithmetic Operation(기본 산술 연산자)
숫자 타입 F, I, P의 데이터 산술식에서 사용되는 기본적인 기호와 키워드
기호 | 의미 | 사용 예 | 기호와 동일한 키워드 |
+ | 더하기 | <p>= <n>+<m>. | ADD <n> TO <m> |
- | 빼기 | <p>=<m>-<n>. | SUTBTRACT <n> FROM <m> |
* | 곱하기 | <p>=<m>*<n>. | MULTIPLY <m> BY <n> |
/ | 나누기 | <p>=<m>/<n>. | DIVIDE <m> BY <n> |
DIV | Integer 나누기 | <p>= <m> DIV <n>. | |
MOD | Integer 나누기의 나머지 | <p>= <m> MOD <n>. | |
** | 제곱 | <p>= <m> ** <n> |
2) Numeric Data Type 함수
함수 | 내역 | 사용 예 |
ABS | 절대값 리턴 | ABS(-100) 은 100을 리턴 |
SIGN | 부호에 대한 결과 리턴 | 마이너스 -1, 0-> 0, 플러스 + 리턴 |
CEIL | 해당 값보다 작지 않은 가장 큰 정수 리턴 | ceil(1.3), ceil(1.7) 모두 2를 리턴 |
FLOOR | CEIL의 반대 | floor(1.3), floor(1.7) 모두1을 리턴 |
TRUNC | 소수점을 버리고 정수만 남김 | trunc(1.3), trunc(1.7) 모두 1을 리턴 |
FRAC | 소수점 이하 자리만 남김 | frac('2.9')는 0.9를 리턴 |
2. Character Type
Character Type은 크게 4가지가 존재하며 Character Field라고 부른다.
데이터 타입 | 의미 |
C | 문자, 숫자, 특수문자에 사용 |
N | 숫자를 C타입으로 표현 Integer 형태를 문자 타입으로 보여줌. |
D | 날짜 타입을 표현 |
T | 시간 타입을 표현 |
※ 문자 길이를 지정할 경우 변수 뒤에 LENGTH 옵션을 이용할 수 있는데
이 옵션은 C,N,X, P 타입에서 사용가능하며, 변수 길이 정의한다.
3. 가변 길이를 가지는 Predefined ABAP Type
String이 대표적이며 가변 길이를 가지는 Data Type C와 유사
아주 긴 문자열을 표현할 경우 String을 사용하면 유용함.
String 관련 명령어
명령어 | 의미 |
FIND | ABAP이란 글자안에 B가 있으면, 시스템 변수 SY-SUBRC = 0 반환 |
REPLACE | ABAP을 BBAP로 바꿈 |
TRANSLATE | 대소문자를 변경함 |
SHIFT | ABAP을 왼쪽으로 한 칸씩 옮김 |
CONDENSE | 공백을 제거하여 왼쪽으로 정력 NO-GAPS와 주로 사용되어 SPACE 제거 |
OVERPLAY | character의 빈 곳을 채우고, 채워져 있는 곳을 덮어쓰지 않음 |
CONCATENATE | AB+AP을 합쳐서 ABAP으로 연결 |
SPLIT | 기존 문자 C를 중심으로 AB와 AP로 나눔. |
4. 프로그램의 Local Type
1) TYPE 선언
프로그램 내에서 Local Type을 선언하여 로컬 프로그램에서만 특별한 타입으로 사용하기 위해 TYPES 구문을 이용한다.
2) Structured TYPE 선언
여러 개 필드로 이루어진 구조체 타입을 선언할 수 있다.
5. ABAP Dictionary의 Type
ABAP Dictionary는 Global Data Type이다.
ABAP Dictionary(Table, Structure, Data Element)는 모든 프로그램에서 Data Type으로 선언하여 사용할 수 있다.
1) Table, View를 이용한 TYPE 선언
Database Table과 View 전체를 참고하여 구조체 및 인터널 테이블을 선언할 수 있다.
그리고 Table의 필드만을 참고하여 선언할 수 있다.
2) Data Type을 이용한 TYPE 선언
1) Data Element
2) Structure를 이용한 TYPE 선언
-Structure는 여러 개의 TABLE에 존재하는 필드들을 조합할 필요성이 있을 경우에 자주 사용된다.
3) Type Group을 이용한 TYPE 선언
Type Group은 INCLUDE Technique을 기반으로 하며, 여러가지 TYPE을 그룹으로 묶어서 선언할 때 사용된다.
Type Group은 모든 프로그램에서 사용할 수 있는 Global Data Type이다.
모듈별로 자주 사용하게 되는 타입들을 Type Group으로 관리하는 것도 좋은 방법이다.
SLIS라는 TYPE-POOL을 생성하여 개발 시에 자주 사용하는 ALV 프로그램도 이용 가능하다.
4) ABAP Dictionary Type vs ABAP Type
ABAP Dictionary Type | ABAP Type |
ACCP | N(6) |
CHAR n | C(n) |
CLNT | C(3) |
CUKY | C(5) |
CURR n, m | P((n+1)/2) DECIMAL m |
DEC n, m | P((n+1)/2) DECIMAL m |
DATS | D(8) |
FLTP | F(8) |
INT1 | X(1) |
INT2 | X(2) |
INT4 | X(4) |
LANG | C(1) |
NUMC n | N(n) |
PREC | X(2) |
QUAN n, m | P((n+1)/2) DECIMAL m |
RAW n | X(n) |
TIMS | T(6) |
UNIT | C(n) |
VARC n | C(n) |
LRAW | X(n) |
LCHR | C(n) |
STRING | STRING |
6. Assinging Value(값 할당)
변수를 선언하거나 실제 데이터가 처리되는 구문에서 Data Object에 값을 할당할 수 있다.
앞에서 살펴보았듯이 변수를 선언할 때 VALUE 구문을 통하여 초깃값을 정의할 수 있고,
실제 데이터를 처리하는 프로그램 구문 내에서 MOVE 또는 WRITE TO 구문을 이용하여 변수에 값을 할당하게 된다.
MOVE TO 구문은 Equal 구문과 동읠한 의미이다.
7. 기타 변수 선언
1) Constants
- 프로그램 내에서 자주 사용하게 되는 값을 상수(constant)로 선언하여 사용
- 상수로 사용하게 되면 프로그램 내에서 변경 불가
- Constant 변수를 여러 번 사용하였고, Constant 변숫값을 변경하여야 할 경우에는 한 번만 변경하면 되기 때문에
프로그램 수정 시간을 절감 할 수 있다. - 숫자를 의미 있는 변수명으로 지정함으로써 프로그램 가독성에도 큰 도움이 된다.
2) STATICS
3) TABLES
- Tables 구문을 사용하여 ABAP Dictionary Table, VIew, Structure를 선언하게 되면
ABAP Dictionary 타입과 같은 Data Object를 생성하게 된다.
이것을 Table Work Area라고 부르며 구조체처럼 사용할 수 있다.
'Easy Abap 2.0' 카테고리의 다른 글
[2주차] Chapter 5 Internal Table Part 2 (0) | 2023.11.16 |
---|---|
[2주차] Chapter 5 Internal Table Part 1 (0) | 2023.11.16 |
[2주차] Chapter 2 Data Type Part 1 (0) | 2023.11.13 |
[1주차] Chapter 7 ABAP Dictionary Part 4 (0) | 2023.11.13 |
[1주차] Chapter 7 ABAP Dictionary Part 4 (0) | 2023.11.08 |