SAP에서 실행 중인 ABAP 프로그램 디버깅 하는 방법에 대해서 정리해 보았습니다.
ABAP 프로그램이 실행 중인데 평소보다 오래 걸리는 등의 이유로 프로그램 데이터와 로직을 확인하고자 할 때 유용합니다.
일반적으로 실행 중인 프로그램은 Active Jobs 로도 표현하는데요, 이러한 프로세스/프로그램들은 SM51 혹은 SM66_OLD 등 티코드에서 확인할 수 있습니다.
이 두 티코드를 통해서 현재 실행 중인 리포트/프로세스에 대한 Debugging를 수행할 수 있으며, Foreground 및 Background 형태로 현재 실행 중인 프로그램이면 모두 적용됩니다.
SM50 또는 SM51 프로세스 개요에서 Debugging
Debugging을 할 프로세스/프로그램을 선택하고, 상단 메뉴에서 관리-프로그램-디버깅 을 선택합니다.
메뉴 > 관리 > 프로그램 > 디버깅
SM66_OLD 전체 프로세스 개요에서 Debugging
마찬가지 비슷한 방법으로 SM66_OLD(구버전인 경우 SM66)에서도 위의 SM50처럼 Debugging을 진행 할 수 있습니다.
Debugging Break point는 현재 수행되는 로직입니다.
디버깅 할 프로세스 선택 후 /디버깅/ 버튼 클릭
만약에 현재 DB 조회 등의 단계라면, 해당 유닛 로직이 끝난 후 디버그에 진입합니다.
" 현재 DB 조회 중 디버깅을 설정 했다면 해당 쿼리가 다 끝날 때까지 기다려야함
...
SUM( WKG012 ) AS WKG012
FROM COSP
APPENDING CORRESPONDING FIELDS OF TABLE GT_COSP
WHERE
LEDNR = '00'
AND OBJNR IN LR_OBJNR
...
ENDIF.
" ★ 여기서 부터 실행
IF GT_COSP[] IS NOT INITIAL. " 구분 설정.
IF P_FLAG = 'A'. " 실제에서 'A' 정산 항목은 제외
DELETE GT_COSP WHERE BEKNZ = 'A'.
ENDIF.
백그라운잡 프로그램 디버깅 하는 방법
참고로, 이미 수행이 끝난 백그라운드 잡 프로그램을 디버깅 하는 방법이며, 아래의 링크를 통해 자세히 확인할 수 있습니다.
이상으로 실행 중인 ABAP 프로그램 디버깅 하는 방법에 대해서 알아보았습니다. 평소와 다르게 수행 중인 프로그램 분석 시 유용하게 사용해 보시기 바랍니다.
SAP에서 제공하는 SM50 프로세스 개요 프로그램의 좀 더 상세한 내용은 아래의 SAP 공식 문서에서 확인 할 수 있습니다.
함께 보면 좋은 글
SAP EU_SCRP_WN32 : CPIC-CALL, ThSAPCMRCV Screen Painter 오류 해결책
SAP 디버깅 소스 위치 새창 열기 (Goto Source Code 기능)
ABAP 디버깅 loop 팁 – Break point Skip 기능