ABAP CONCATENATE 사용법 및 예제 정리

ABAP에서 문자열을 연결하는 기능을 하는 ABAP CONCATENATE 사용법 및 예제를 정리해 보았습니다.

ABAP CONCATENATE 명령어는 문자 타입의 자료형을 연결하고자 할 때 사용하는 ABAP 키워드입니다. 변수 사이의 연결(문자 타입인 경우) 및 순수 문자열과 문자열을 연결해 주는 기능을 수행합니다.

ABAP CONCATENATE 기본 사용법

기본적인 사용법은 다음과 같습니다.

CONCATENATE 명령어로 문자열 파라메터를 추가하게 되면 INTO 다음의 변수로 스트링 값이 더해지게 됩니다.

DATA : LV_STRING TYPE STRING.
DATA : LV_STR1 TYPE STRING VALUE '첫번째 글자'.
DATA : LV_STR2 TYPE STRING VALUE '두번째 글자'.

CONCATENATE LV_STR1 LV_STR2 INTO LV_STRING.

WRITE : / LV_STRING.

ABAP CONCATENATE의 활용 – 필드 심볼(FIELD-SYMBOL)

ABAP CONCATENATE는 필드 심볼 등을 활용하여 동적(Dynamic) 할당 등의 처리를 할 때 아주 유용하게 사용됩니다.

DATA : LV_FIELD(50) TYPE C.
FIELD-SYMBOLS : <FS_FIELD> TYPE ANY.
DATA : LV_N(2) TYPE N.

LV_N(2) = '02'.
CONCATENATE 'GS_COSP-WOG0' LV_N INTO LV_FIELD.
ASSIGN (LV_FIELD) TO <FS_FIELD>.
IF SY-SUBRC EQ 0.
  " // TO DO
ENDIF.

위의 코드는 COSP의 WOG002 필드를 필드심볼로 동적으로 참조하여 처리할 때 사용되는 코드인데, 이때 참조하고자 하는 변수 명을 위와 같이 CONCATENATE를 활용해서 조합할 수 있습니다.

GS_COSP-WOG002 로 스트링을 Concat 한 후에 필드 심볼 <FS_FIELD>에 할당하고 사용하는 사용 예제 입니다.

LV_N(2) = '02'.
CONCATENATE 'GS_COSP-WOG0' LV_N INTO LV_FIELD.
ASSIGN (LV_FIELD) TO <FS_FIELD>.

ABAP CONCATENATE 공백 처리 방법 2가지

기본적으로 ABAP CONCATENATE 키워드는 오른쪽 공백을 TRIM 하기 때문에 다음과 같이 입력하면 붙어서 나오게 됩니다.

// 공백을 처리하더라도
CONCATENATE '    문자열3     ' '문자열 4    ' INTO LV_STRING.
WRITE : / LV_STRING.

ABAP CONCATENATE 사용법 - CONCATENATE 키워드는 오른쪽 공백을 TRIM

이럴 때 ABAP CONCATENATE 에서 공백 처리는 2가지 방법으로 처리할 수 있습니다.

첫번째 방법은 `(백틱 문자) 를 활용하는 것입니다. 그러면 앞 뒤 공백이 입력한 그대로 출력 되게 됩니다.

CONCATENATE `    문자열3     ` `문자열 4    ` INTO LV_STRING.
WRITE : / LV_STRING.

두번째 방법은 RESPECTING BLANKS 키워드를 사용해 주는 것입니다. 이 역시도 입력된 공백을 그대로 인정되도록 하는 옵션 키워드입니다.

CONCATENATE '    문자열3     ' '문자열 4    ' INTO LV_STRING RESPECTING BLANKS.
WRITE : / LV_STRING.

위의 예제는 동일한 결과로 다음과 같이 출력됩니다.

    문자열3 문자열 4
    문자열3 문자열 4

RESPECTING BLANKS 역시 명시적으로 입력한 공백 그대로 문자열을 표시할 수 있습니다.

각 글자 사이에 특정 문자열 삽입하여 CONCATENATE 하기

SEPARATED BY 문자열 구문을 사용하면 각 문자 사이에 특정 추가 문자열을 삽입하여 CONCATENATE 합니다.

CONCATENATE '문자열3' '문자열 4' INTO LV_STRING SEPARATED BY '%ABC'.
WRITE : / LV_STRING.

결과는 다음과 같습니다.

문자열3%ABC문자열 4

보통 많이 쓰이는 키워드는 SPACE인데요, ABAP에서는 SPACE 키워드 역시 한 글자 문자로 인식하므로, 다음은 한 칸을 띄어서 CONCATENATE 하게 된다.

CONCATENATE '문자열3' '문자열 4' INTO LV_STRING SEPARATED BY SPACE.
WRITE : / LV_STRING.

이상으로 SAP ABAP Concatenate 키워드에 대해서 알아보았습니다. 좀 더 상세한 내용은 SAP 공식 문서 7.5 버전 Concatenate 항목을 자세히 참조하시면 됩니다.

다른 유용한 키워드도 궁금하다면 아래의 글을 참고해보시기 바랍니다.

참고하면 좋은 SAP ABAP 유용한 키워드 사용법

ABAP Collect 사용법 및 예제

ABAP READ TABLE 사용법 및 예제 정리