SAP 실행 중인 ABAP 프로그램 디버깅 (SM50, SM66_OLD)

SAP에서 실행 중인 ABAP 프로그램 디버깅 하는 방법에 대해서 정리해 보았습니다.

ABAP 프로그램이 실행 중인데 평소보다 오래 걸리는 등의 이유로 프로그램 데이터와 로직을 확인하고자 할 때 유용합니다.

일반적으로 실행 중인 프로그램은 Active Jobs 로도 표현하는데요, 이러한 프로세스/프로그램들은 SM51 혹은 SM66_OLD 등 티코드에서 확인할 수 있습니다.

이 두 티코드를 통해서 현재 실행 중인 리포트/프로세스에 대한 Debugging를 수행할 수 있으며, Foreground 및 Background 형태로 현재 실행 중인 프로그램이면 모두 적용됩니다.

SM50 또는 SM51 프로세스 개요에서 Debugging

Debugging을 할 프로세스/프로그램을 선택하고, 상단 메뉴에서 관리-프로그램-디버깅 을 선택합니다.

메뉴 > 관리 > 프로그램 > 디버깅

SM50, SM51 에서 디버깅할 프로세스 선택

SM66_OLD 전체 프로세스 개요에서 Debugging

마찬가지 비슷한 방법으로 SM66_OLD(구버전인 경우 SM66)에서도 위의 SM50처럼 Debugging을 진행 할 수 있습니다.

Debugging Break point는 현재 수행되는 로직입니다.

디버깅 할 프로세스 선택 후 /디버깅/ 버튼 클릭

SM66 에서 프로그램 디버깅 하는 방법

만약에 현재 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 백그라운즈잡 디버깅 방법(SM37)


이상으로 실행 중인 ABAP 프로그램 디버깅 하는 방법에 대해서 알아보았습니다. 평소와 다르게 수행 중인 프로그램 분석 시 유용하게 사용해 보시기 바랍니다.

SAP에서 제공하는 SM50 프로세스 개요 프로그램의 좀 더 상세한 내용은 아래의 SAP 공식 문서에서 확인 할 수 있습니다.

SM50 in Detail: Column Overview

함께 보면 좋은 글

SAP EU_SCRP_WN32 : CPIC-CALL, ThSAPCMRCV Screen Painter 오류 해결책

SAP 디버깅 소스 위치 새창 열기 (Goto Source Code 기능)

ABAP 디버깅 loop 팁 – Break point Skip 기능