본문 바로가기

ABAP 프로그래밍 개념/ABAP 프로그래밍 Concept

ABAP Programming Concept : Data Types(Predefined Elementary Data Types with Variable Lengths)

계속 말해오고 있는 data types는 고정된 길이를 가지거나 구체적으로 data object를 선언할 때 길이를 구체화 해주어야합니다. 우리가 처리하고자 하는 데이터의 길이를 갈고 있다면, 예를 들어, SAP 에서의 자재코드가 alphanumeric(문자+숫자) 필드로 18 자리의 characters를 알고있는 것처럼 말입니다. 그러므로, 만약 당신이 ABAP 프로그램에서 자재코드를 작업하고 싶을때, 당신은 쉽게 Type c와 LENGTH 18의 data object를 만들 수 있습니다. 그러나, 실행동안 데이터의 길이를 모르기 때문에 동적인 길이를 가진 필드를 만들어야할 때가 있을 것입니다. 이러한 상황을 위해서 ABAP은 string과 Xstring이라는 data types를 제공합니다.

■ String
-> String을 type을 가진 변수는 어떠한 길이 제한없이 alphanumeric를  담을 수 있습니다.

■ xString
-> 길이의 제한없이 Hexademical 유형을 가질 수 있게 하는 변수를 만들 수 있습니다.

당신이 string으로 data object를 정의하면, 관리 정보를 저장하는 문자열 헤더만 정적으로 생성됩니다. String data object의 초기 길이는 0 입니다. 그리고 data object에 저장된 데이터에 근거하여 프로그램 실행동안 길이는 동적으로 변화합니다.

DATA path TYPE string
DATA xpath TYPE xstirng.

Data Type Use Case
Numeric Types
i 카운터, 인덱스, 기간 등의 정수를 처리하는 데 사용합니다. 유효한 값 범위는 -2147483648 ~ +2147483647입니다.

i의 값 범위가 너무 작으면 Decimal이라는 addition을 추가하지 않고 TYPE p를 사용하면 됩니다.

Example : DATA i1 TYPE i. "i는 고정된 길이를 가지고 있음
f 반올림(rounding) 문제가 심각하지 않을 때 큰 값을 처리하는데 사용됩니다. 대부분의 경우 TYPE f는 SAP NetWeaver AS for ABAP 7.1에서 decfloat(decfloat16 및 decfloat34)로 대체됩니다.

type f는 성능에 중요한 알고리즘이 포함되어 있고 정확성이 중요하지 않은 경우에만 데이터 유형 f를 사용합니다.

Example : DATA f1 TYPE f. "f는 고정된 길이를 가지고 있음
p p type은 거리, 돈의 총액, 수량 등 설계시 고정된 소숫점이 예상되는 경우 사용합니다.

Example
1) DATA p1 TYPE p DECIMALS 2. " 이렇게 선언하면 default length인 8을 사용 (정수부분 6, 소수 2)
2) DATA p2(4) TYPE p DECIMAL 3. " 소숫점 3자리를 포함한는 4자리 type P 선언
decfloat16 and 
decfloat34
소수 자릿수가 가변적이거나 값 범위가 큰 분수가 필요한 경우 decfloat16 또는 decfloat34를 사용합니다.

Example
1) DATA d1 TYPE decfloat16.
2) DATA d2 TYPE decfloat34.
c 이름, 장소 또는 어떠한 character 문자와 같은 문자 숫자식을 처리할 때 사용

Example
1) DATA c1 TYPE c.
2) DATA c2(10) TYPE c.
3) DATA c3 TYPE c LENGTH 10.
n 핸드폰 번호 또는 우편번호과 같은 숫자 값을 처리할 때 사용

Example
1) DATA n1 TYPE n.
2) DATA n2(10) TYPE n.
3) DATA n3 TYPE n LENGTH 10.
d  YYYYMMDD 포맷이 예상되는 날짜를 처리하는데 사용

Example
1) DATA : d1 TYPE d.
t  HHMMSS 포맷이 예상되는 시간을 처리하는데 사용

Example
1) DATA t1 TYPE t.
x  데이터의 이진 값을 처리하는데 사용. 다른 코드 페이지(code page)로 작업할 때 유용.

Example
1) DATA x1 TYPE x.
2) DATA x2(10) TYPE x.
3) DATA x3 TYPE x LENGTH 10.
string  TYPE c 필드의 길이를 런타임에서만 알수있는 경우 사용

EXAMPLE
1) DATA s1 TYPE string.
xstring TYPE x 필드의 길이를 런타임에서만 알수있는 경우 사용

EXAMPLE
1) DATA xs1 TYPE xstring.

 

반응형