본문 바로가기

IT/SAP

[SAP] BADI, USER EXIT 찾는 법, BADI Debug 안걸릴 때

BADI란?

BADI(Business Add-In)는 기존 SAP 표준 기능에 자체 비즈니스 기능을 추가하는 데 사용되는 새로운 SAP Object Oriented 향상 기술입니다.

-> User exit과 마찬가지로 Standard에 소스 코드 구현 방법

 

BADI 찾는 방법

1. 디버깅 모드

T-code: SE24 -> CL_EXITHANDER 조회

 

GET_INSTANCE -> 더블클릭

Case Sy-subrc 라인 External Breakpoint 체크

BADI찾을 프로그램 실행 후 디버깅 모드에서 EXIT_NAME 값 확인

F8 누르면서 BADI 찾은 후 BADI 조회

T-Cocde: SE18

 

* SE19에서 상속받은 BADI 생성 가능 -> 생성 방법

2. ST05

SQL, 버퍼 추적 선택

1. ST05

2. SQL, 버퍼 선택

3. 추적 설정

transaction 실행

추적해제

추적리스트

결과화면 > 편집 > 오브젝트 선택

V_EXT_IMP, V_EXT_ACT 선택 후 출력

BAdI 확인

3. SXV_GET_CLIF_BY_NAME

se37 > SXV_GET_CLIF_BY_NAME > breakpoint > transaction excute > Confirm name field

USER EXIT 찾는 법

Userexit allow us to add our own functionality to SAP standard program without modifying it .

1. SMOD, CMOD

SMOD: SMOD는 SAP의 enhancement를 관리할 수 있는 t-code.

CMOD:  CMOD는 Project Management for SAP Enhancement의 실행 T-code로 앞서 살펴본 enhancement를 여러 개를 묶어서 하나의 프로젝트로 관리할 수 있도록 하는 기능이다. -> SMOD들의 집합

 

T-code 패키지 찾기 (Ex. XK03)

시스템 -> 상태(S) -> 

 트랜잭션 더블클릭 -> 개발 클래스 확인

 

SMOD 실행 -> 기능확장 Possible Entry(F4) -> 개발클래스 입력(FBK) 후 조회

CMOD도 동일

 

2. 테이블 검색

MODACT,  MODATTR,  MODTEXT, TSDIRT

 

3. BADI, EXIT 찾는 프로그램(링크)

4. 그 외

T-code: GGB0, GGB1, GGB1, OB28

 

 

Update Debugging(링크)

BADI를 디버깅할 때 Breakpoint를 무시하고 넘어가는 경우가 있다.(Ex. MB_DOCUMENT_BADI)

업데이트 작업 중에 호출되어 멈추지 않는다고 한다.(링크)

Debug mode -> Setting -> Display/Change Debugger Setting -> Update Debugging 체크

 

 

출처:

https://answers.sap.com/questions/3694669/what-is-the-name-of-the-table-for-finding-user-exi.html

https://www.learnsapabap.com/2017/11/function-exit-or-customer-exit.html

https://m.blog.naver.com/howwithus/221481142126

https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=133758980

https://stophyun.tistory.com/97

https://www.zapyard.com/how-to-find-badis/