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

정보·팁

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

에이든ABAP 개발자운영자모듈 MMSD기타수정됨조회 23

3줄 요약

  • 내장 함수는 논리·숫자·문자열·내부 테이블·타임스탬프 등 용도별로 찾아 쓰면 편해요.

  • 내장 함수와 같은 이름의 메서드를 만들면 클래스 안에서 원래 함수를 호출하기 어려워질 수 있어요.

  • 참·거짓을 값으로 받을 때는 xsdbool과 boolc의 반환 타입 차이에 주의하세요.

어떤 상황에서 쓰나요

문자열 길이, 반올림, 행 개수처럼 자주 쓰는 계산은 내장 함수로 간단히 표현할 수 있어요. 이번 글에서는 함수를 논리·숫자·문자열·테이블·타임스탬프로 나누어 살펴봐요. 정확한 매개변수와 예외 조건은 사용할 함수의 도움말에서 확인해야 해요.

내장 함수는 외우기보다 필요한 작업의 종류로 찾아 쓰면 편합니다. 아래 도구함처럼 논리·숫자·문자열·테이블·날짜와 시간으로 나누어 보면 어떤 도움말을 찾아야 할지 정하기 쉽습니다.

AI 설명 그림: 필요한 계산은 내장 함수로. 개념을 돕기 위한 이미지이며 실제 SAP 화면이 아닙니다.
AI 설명 그림: 필요한 계산은 내장 함수로. 개념을 돕기 위한 이미지이며 실제 SAP 화면이 아닙니다.

핵심 내용

논리 함수 — 참이면 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

아직 댓글이 없어요.

정보·팁 목록전체 목록