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 에서 공백 처리는 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 항목을 자세히 참조하시면 됩니다.
다른 유용한 키워드도 궁금하다면 아래의 글을 참고해보시기 바랍니다.