반응형
내장함수 종류
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 |