바로투입이력카드
SAP 게시판

정보·팁

ABAP 내장 함수 모음: 논리, 숫자, 문자열, 테이블, 타임스탬프 함수

에이든ABAP 개발자운영자모듈 MMSD기타조회 9

3줄 요약

  • 내장 함수는 논리(xsdbool, contains, matches, line_exists), 숫자(round, ceil, floor), 문자열(condense, replace, substring), 테이블(lines, line_index), 타임스탬프(utclong_add) 등으로 나뉘고 ABAP SQL 과 CDS 에도 비슷한 함수가 있어요.

  • 클래스 안에서 메서드 이름을 내장 함수와 같게 지으면 내장 함수가 가려져요.

  • xsdbool 은 abap_bool 로 쓰기 좋은 한 글자를, boolc 는 문자열을 돌려줘요.

어떤 상황에서 쓰나요

DESCRIBE TABLE ... LINES, TRANSLATE ... TO UPPER CASE 같은 옛 문장을 함수 호출로 바꾸거나, 연재에서 본 문법에 쓰이는 함수가 무엇인지 한 번에 훑어보고 싶을 때 쓰는 요약이에요. 치트시트의 *Built-In Functions* 편은 함수 이름과 짧은 예제를 표로 모아 둬요. 연재 5회이자 이 연재의 마지막이에요.

핵심 내용

논리 함수 — 참이면 X, 거짓이면 공백을 돌려줘요. ABAP 에는 불리언 타입이 없어서 abap_bool 과 abap_true/abap_false 로 표현해요.

  • boolc: 결과가 string 타입이에요. 참이면 X, 거짓이면 공백이에요.

  • xsdbool: 참이면 X, 거짓이면 공백이지만 abap_bool 에 맞는 한 글자 타입이에요. 치트시트의 예제 대부분이 IF 대신 xsdbool 로 참/거짓을 보여 줘요.

  • contains / contains_any_of / contains_any_not_of: 문자열에 부분 문자열이 있는지 검사해요. sub/start/end 로 어디를 볼지 정하고 off/len 으로 범위를, case 로 대소문자(기본은 구분)를, pcre 로 정규식을 줘요. any_of 계열은 문자 하나씩 검사하고 pcre 는 없어요.

  • matches: 전체가 패턴에 맞는지 검사해요.

  • line_exists: 테이블 식으로 줄이 있는지 검사해요.

숫자 함수: abs, sign, ceil(올림), floor(내림), trunc(정수부), frac(소수부), ipow, nmin/nmax, 삼각·지수·로그·제곱근(sin, exp, log10, sqrt 등), round(소수 자리나 유효 자릿수로 반올림), rescale, factorial, binomial. 반올림 함수는 decfloat34 입력을 기대하고 결과도 decfloat34 예요.

DATA(round1) = round( val = CONV decfloat34( '1.2374' ) dec = 2 ).   " 1.24
DATA(ceil1)  = ceil( CONV decfloat34( '4.001' ) ).                   " 5
DATA(floor3) = floor( CONV decfloat34( '-4.999' ) ).                 " -5

문자열 함수: strlen, numofchar, find/find_end/find_any_of, count, distance(두 문자열의 유사도), repeat, condense, concat_lines_of(테이블을 한 문자열로), reverse, escape(URL, JSON 등 용도에 맞게 특수 문자 이스케이프), insert, match, replace, segment, shift_left/shift_right, substring 계열, to_upper/to_lower/from_mixed/to_mixed, translate(문자 대체).

DATA(stringtable) = VALUE string_table( ( `a` ) ( `b` ) ( `c` ) ).
DATA(joined) = concat_lines_of( table = stringtable sep = `/` ).   " a/b/c

테이블 함수: lines(줄 수), line_index(테이블 식으로 찾은 줄의 번호). 해시 테이블에는 기본 인덱스가 없어서 기본 키로 찾으면 -1 이 나오고, 보조 정렬 키를 지정하면 번호를 얻어요.

타임스탬프 함수: utclong_current, utclong_add, utclong_diff.

ABAP SQL 과 CDS 의 함수. 같은 함수 이름이 SQL 쪽에도 있어요. 숫자·문자열·날짜·시간·타임스탬프 함수, 특수 함수, coalesce 로 나뉘어 있어요. 같은 이름이라도 ABAP SQL 용과 ABAP 문장용은 다른 것이므로 SQL 편(ABAP SQL 연재)을 참고하세요.

주의할 점

  • 메서드 이름이 내장 함수 이름과 같으면 클래스 안에서 내장 함수가 가려져요. 이 규칙은 Clean ABAP 연재 1회의 "내장 함수를 가리지 않는다"와 같아요.

  • 이 글은 함수 이름과 용도만 요약해요. 매개변수와 예외 조건은 ABAP 키워드 문서에서 확인하세요. 치트시트도 이 편이 모든 함수나 모든 매개변수를 다루지 않는다고 밝혀요.

  • 치트시트는 계속 갱신되는 문서예요. 이 편의 첫 공개는 2024년 12월이고, 제가 읽은 판은 2026년 10월 기준이에요. 이 글은 읽고 정리한 것이고 예제를 직접 실행해 보지는 않았어요.

원문 주소: https://github.com/SAP-samples/abap-cheat-sheets/blob/main/24_Builtin_Functions.md

출처와 이용 안내
  • 원문: ABAP Cheat Sheets - Built-In Functions · 작성자 SAP SE and contributors SAP-samples · 작성일 2024-12-02 · 기준 릴리스에 따라 다름 원문은 최신 ABAP 기준 · 확인일 2026-10-25

  • 이 글은 위 원문을 읽고 한국어로 요약·재구성한 글이며 번역본이 아니에요. 원문의 저작권은 작성자와 SAP에 있어요.

  • 원문은 Apache-2.0 라이선스(https://www.apache.org/licenses/LICENSE-2.0)로 공개된 자료예요. 이 글은 내용을 한국어로 줄이고 순서를 바꾼 변경본이며, 원저작자가 이 글을 보증하지 않아요.

  • 설정과 화면은 릴리스마다 달라요. 적용하기 전에 원문과 SAP Help Portal, 관련 SAP Note에서 최신 내용을 확인해 주세요.

  • SAP와 SAP 제품명은 SAP SE의 상표예요. 바로투입은 SAP와 관련이 없어요.

댓글 0

아직 댓글이 없어요.

정보·팁 목록전체 목록