SAP ABAP 소스 코드 자동 분석과 대체

SCAN ABAP-SOURCE 명령어란?
SAP의 ABAP 프로그래밍에서 SCAN ABAP-SOURCE는 코드 전체를 한 번에 분석해 의미와 구조를 표 형태로 추출하는 명령어입니다. 업그레이드나 레거시 코드 관리 시, 오래된 문법이나 함수 모듈을 자동으로 찾아내고 바꿔야 할 때 유용하게 쓰입니다.
주요 구조: LEVELS, STATEMENTS, TOKENS
이 명령어는 세 가지 핵심 테이블을 생성합니다.
LEVELS: 프로그램의 포함(includes) 깊이 구조를 파악합니다.
STATEMENTS: 코드의 행과 열, 구문 종류(예: 문자열, 식별자 등)를 나타냅니다.
TOKENS: 실제 코드 내용을 쪼개어 토큰화한 데이터로, 특정 문법이나 키워드를 손쉽게 검색·대체할 수 있습니다.
다양한 옵션과 커스터마이징
SCAN ABAP-SOURCE는 다양한 추가 옵션을 지원합니다. 예를 들어,
FROM n1 TO n2: 일부 코드 영역만 선택적으로 분석
KEYWORDS FROM: 지정한 키워드만 분석
WITH COMMENTS: 주석도 토큰으로 분리 이외에도 모두 포함하는(INCLUDES), 토큰 오버플로우 처리 등 세밀한 제어가 가능합니다.
소스 분석 및 대체의 자동화
분석된 토큰에서 원하는 문법(예: DATA, TABLES, TYPES 등)을 찾고, 해당 위치에 새 코드를 자동으로 대입할 수 있습니다. 예시 코드를 활용하면 프로그램과 포함 파일에서 키워드를 파악하여 위치와 내용을 손쉽게 확인할 수 있습니다.
REPORT Y_SCAN_SOURCE line-size 400.
DATA: BEGIN OF I_REPORT OCCURS 0, line(256) TYPE c, END OF I_REPORT.
...
SCAN ABAP-SOURCE I_REPORT TOKENS INTO i_tokens STATEMENTS INTO i_statements LEVELS INTO i_levels KEYWORDS FROM i_keywords WITH INCLUDES WITH ANALYSIS.
...
활용에서 주의점
SCAN ABAP-SOURCE는 '내부 용도'로 개발된 명령이라서 정식 어플리케이션 프로그램에서는 사용할 수 없는 점을 꼭 확인해야 합니다. 제한적인 환경에서만 활용되는 도구입니다.
코드 변경·비교 자동화의 가능성
이 명령어는 대규모 프로젝트의 코드 일괄 변경, 신규 구문 자동 삽입, 여러 프로그램 간 코드 비교 등 반복적이고 복잡한 작업을 자동 처리하는데 큰 도움이 됩니다. 특히 SAP 시스템 업그레이드나 유지운수에서 탁월한 효율을 보여줍니다.
Source & Reference : Auto Identification and Replacement By using SCAN ... - SAP Community