loading
본문 바로가기
SAP/ABAP

[SAP_ABAP] Data Type - 내장함수

by 원쿤짱쿤 2024. 7. 21.
반응형

내장함수 종류

ABAP에서는 여러 데이터 타입에 대해 다양한 내장 함수들이 제공됩니다. 아래는 몇 가지 주요 데이터 타입과 해당 내장 함수들에 대한 설명입니다.

DATA : LV_MONEY TYPE CHAR10.
DATA : LV_MON TYPE I.

1. ABS 절대값

LV_MONEY = -10000.
WRITE : / 'Money', LV_MONEY.

LV_MONEY = ABS( LV_MONEY ).
WRITE : / 'ABS Money', LV_MONEY.

 

출력

 

2. SIGN 부호반환

LV_MONEY = -9999.
LV_MONEY = SIGN( LV_MONEY ).
WRITE : / 'SIGN Money', LV_MONEY.

LV_MONEY = 9999.
LV_MONEY = SIGN( LV_MONEY ).
WRITE : / 'SIGN Money', LV_MONEY

 

출력

 

3. TRUNC 반환

DATA : LV_DEC TYPE CHAR10.

LV_DEC = '1.7'.
LV_DEC = TRUNC( LV_DEC ).
WRITE : / 'Truncate',  LV_DEC.

 

출력

 

4. 문자 관련 내장함수

DATA : LV_STR TYPE CHAR20.
LV_STR = 'pArtner.com'.

 

*1) FIND 구문

- 문자열 내에서 특정 패턴을 검색하는 데 사용됩니다. FIND 구문은 검색할 문자열과 일치하는 첫 번째 위치를 찾아내며, 일치 여부에 따라 후속 작업을 수행할 수 있도록 도와줍니다.

FIND [FIRST OCCURRENCE OF] <search_pattern> IN <target_string>
  [STARTING AT <start_position>]
  [IGNORE CASE]
  [MATCH OFFSET <offset_variable>]
  [MATCH LENGTH <length_variable>]
  [MATCH COUNT <count_variable>].​

 

구문 설명

  • <search_pattern>: 찾고자 하는 문자열 또는 패턴.
  • <target_string>: 검색할 대상 문자열.
  • FIRST OCCURRENCE OF: 문자열에서 첫 번째 일치 항목만 찾습니다. 이 옵션은 기본값으로 생략 가능.
  • STARTING AT <start_position>: 검색을 시작할 위치를 지정합니다.
  • IGNORE CASE: 대소문자를 무시하고 검색합니다.
  • MATCH OFFSET <offset_variable>: 찾은 패턴의 시작 위치를 저장할 변수입니다.
  • MATCH LENGTH <length_variable>: 찾은 패턴의 길이를 저장할 변수입니다.
  • MATCH COUNT <count_variable>: 검색 패턴과 일치하는 항목의 총 개수를 저장할 변수입니다.

예제

FIND 'A' IN LV_STR.
IF SY-SUBRC = 0.
  WRITE : / 'Find success', SY-SUBRC.
ELSE.
  WRITE : / 'Find fail', SY-SUBRC.
ENDIF.

 

출력

 

부가설명

SY-SUBRC는 시스템 변수로 결과 값을 0,4,8로 반환해준다.각 반환 값에 대한 설명은 아래와같다.

설명
0성공
4실패. 조건에 일치햐는 데이터를 찾을 수 없음
8실패. 조건이 적합하지 않음. The search key was not fully qualified.

 
만약 IF문이 아닌 단순히 SY-SUBRC만 사용하고  LV_STR에서 Z를 찾는다고 할 때 출력 값은 아래와같다.

LV_STR = 'pArtner.com'.

FIND 'Z' IN LV_STR.

WRITE : / SY-SUBRC.

 

출력

 

* 2) REPLACE 구문

- 문자열 내에서 특정 부분을 다른 문자열로 대체하는 데 사용됩니다.

REPLACE [ALL OCCURRENCES OF] <search_string> IN <target_string> WITH <replacement_string>.

 

구문 설명

  • <search_string>: 찾을 문자열
  • <target_string>: 문자열을 대체할 대상
  • <replacement_string>: 대체할 문자열

옵션

  • ALL OCCURRENCES OF: 문자열 내의 모든 일치를 대체합니다. 이 옵션을 생략하면 첫 번째 일치만 대체됩니다.
  • IGNORE CASE: 대소문자를 무시하고 문자열을 대체합니다

예시

REPLACE 'A' IN LV_STR WITH 'a'.

WRITE : / 'Replace', LV_STR.

 

출력

 
 

* 3) TRANSLATE 구문

- 문자열 내에서 문자를 변환하거나 대소문자를 변경하는 데 사용됩니다.

TRANSLATE <target_string> [USING SEPARATORS <separator_string>]
              [UPPER CASE | LOWER CASE | CAPITALIZE]
              [INTO <new_target_string>].

 

구문 설명

  • <target_string>: 변환할 대상 문자열입니다.
  • USING SEPARATORS <separator_string>: 문자열 내에서 구분자로 사용할 문자를 지정합니다.
  • UPPER CASE: 문자열을 모두 대문자로 변환합니다.
  • LOWER CASE: 문자열을 모두 소문자로 변환합니다.
  • CAPITALIZE: 문자열의 첫 글자를 대문자로 변환하고 나머지는 소문자로 변환합니다.
  • INTO <new_target_string>: 변환된 결과를 다른 문자열 변수에 저장합니다.

예제

TRANSLATE LV_STR TO UPPER CASE.
WRITE : / 'Upper', LV_STR.

TRANSLATE LV_STR TO LOWER CASE.
WRITE : / 'Lower', LV_STR.

 

출력

 

* 4) CONCATENATE 구문

- 여러 문자열을 하나로 결합하는 데 사용됩니다. 이 구문은 문자열을 연결하고, 결합된 결과를 하나의 문자열 변수에 저장하는 데 유용합니다.

CONCATENATE <string1> <string2> ... INTO <target_string> [SEPARATED BY <separator>].

 

구문 설명

  • <string1> <string2> ...: 결합할 문자열들입니다. 여러 문자열을 쉼표로 구분하여 나열할 수 있습니다.
  • INTO <target_string>: 결합된 결과를 저장할 대상 문자열 변수입니다.
  • SEPARATED BY <separator>: 문자열들 사이에 삽입할 구분자입니다. 구분자를 생략하면 문자열들 사이에 공백이 삽입됩니다.

예제

CONCATENATE 'abc@' LV_STR INTO LV_STR.
WRITE : / 'Concat', LV_STR.

 

출력

 

* 5) SPLIT 구문

- 자열을 특정 구분자에 따라 나누어 여러 부분으로 분리하는 데 사용됩니다. 이 구문은 문자열을 배열로 나누거나, 문자열을 구분자를 기준으로 분리하여 처리가 가능합니다.

SPLIT <source_string> AT <delimiter> INTO TABLE <target_table>.

 

구문 설명

  • <source_string>: 분리할 원본 문자열입니다.
  • AT <delimiter>: 문자열을 나누는 기준이 되는 구분자입니다. 구분자는 하나 이상의 문자일 수 있습니다.
  • INTO TABLE <target_table>: 나누어진 문자열의 부분을 저장할 내부 테이블입니다. 테이블의 각 행에는 나누어진 문자열의 각 부분이 저장됩니다.

예제

DATA : LV_STR1 TYPE CHAR20,
       LV_STR2 TYPE CHAR20.

SPLIT LV_STR AT '.' INTO LV_STR1 LV_STR2.
WRITE : / '문자열1', LV_STR1.
WRITE : / '문자열2', LV_STR2.

 

출력

'SAP > ABAP' 카테고리의 다른 글

[SAP_ABAP] Table 생성  (0) 2025.01.13
[SAP_ABAP] Data Type - 종류 및 선언(2)  (0) 2024.06.30
[SAP_ABAP] Data Type - 종류 및 선언 (1)  (0) 2024.06.30
[SAP_ABAP] View Type 알아보기  (0) 2024.06.03
[SAP_ABAP] ABAP Dictionary란?  (0) 2024.04.24