이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://www.sapnuts.com/courses/core-abap/badi-sap/real-time-of-using-badi.html
Real time example of using BADI in SAP
SAP 벤더 마스터(XK01) BADI 예제, XK01용 BADI 구현
요구사항 분석
SAP에서는 티코드 XK01로 벤더를 생성합니다. 생성된 벤더는 LFA1 (벤더 마스터 테이블)에 저장 됩니다. XK01로 벤더를 생성할때 (그리고 XK02로 벤더를 변경할때도) 로직을 추가하여 지역이 올바르게 입력되었는지 검사해야 합니다. 그러기 위해서 BADI를 사용하겠습니다.
XK01용 BADI를 구현하기 위해서, 다음 단계를 따라야 합니다.
XK01/XK02용 BADI를 찾아봅시다.
BADI 구현을 위한 첫 단계는 먼저 BADI를 찾는 것입니다.
티코드 SE24로 이동하여 CL_EXITHANDLER 클래스의 GET_INSTANCE 메소드에 브레이크포인트를 겁니다.
LFA1 테이블에서 벤더 넘버를 하나 구해두고 티코드 XK02로 가서 벤더 넘버를 입력합니다.

엔터키를 눌러 다음 화면으로 이동합니다. 적당히 값을 입력하고 저장 버튼을 누릅니다(또는 컨트롤 S).

브레이크포인트에 멈추고 디버거가 실행됩니다. BADI 이름을 모두 적어 둡니다.

아래 처럼 BADI 이름을 다 적었습니다.
- VENDOR_FIELDSTATUS
- GOS_SRV_SELECT
- ADDRESS_CHECK
- ADDR_TXJCD_CHECK
- CVI_CALL_BTE
- ADDRESS_UPDATE
- VENDOR_ADD_DATA
적절한 BADI를 선택하고 검증해 봅시다.
적절한 BADI를 찾기 위해서, 티코드 SE18로 이동하여 BADI 이름을 입력하고 살펴봅니다.


내역에 명시된 설명을 바탕으로 추측합니다. 인터페이스에 메소드 파라미터도 참고합니다. 이런식으로 몇몇 BADI를 선택할 수 있습니다.


요구사항에 맞는 적절한 BADI로 VENDOR_ADD_DATA를 선택하겠습니다.
BADI를 구현해 봅시다.
BADI는 객체 지향 프로그래밍(OOP) 방법을 사용합니다. BADI 자체는 인터페이스에 지나지 않습니다. BADI를 구현하는 것은 즉, 그 인터페이스를 구현하는 것입니다.
BADI를 구현하기 위해서 티코드 SE19(BADI Builder)로 이동하여 BADI 이름을 입력하고 create implementation 버튼을 누릅니다.

팝업창이 나타나면 implementaion name을 입력합니다. 예: ZVENDOR_ADD_DATA

내역을 입력하고, 메소드 목록에서 적절한 메소드를 선택하여 더블클릭합니다.

여기서는 CHECK_ALL_DATA 메소드가 점검 로직을 넣기에 적절해 보입니다.
METHOD IF_EX_VENDER_ADD_DATA~CHECK_ALL_DATA.
BREAK-POINT.
ENDMETHOD.
티코드 XK02로 이동하여 벤더 넘버를 입력하고 주소 체크박스에 체크를 합니다. 엔터키를 눌러 주소 화면으로 이동하고 아무거나 변경한 다음 저장합니다. 이제 위 브레이크 포인트에 걸려서 디버거가 뜨는지 확인합니다. 요구사항에 맞는 아주 적절한 구현 위치를 찾은것 같습니다. 테스트로 넣은 브레이크 포인트 구문을 지우고 실제 필요한 아래 코드를 입력합니다.
METHOD IF_EX_VENDER_ADD_DATA~CHECK_ALL_DATA.
IF I_LFA1=LAND1= 'DE' AND I_LFA1-REGIO= ' '.
MESSAGE 'Region is required for German Vendors' TYPE 'E'.
ENDMETHOD.
저장하고 활성화 합니다.
BADI 구현이 끝났습니다.
BADI가 잘 작동하는지 테스트해 봅시다.
BADI를 테스트하기 위해 티코드 XK02로 이동합니다. 벤더 넘버를 입력하고 엔터키를 누릅니다.
국가를 DE로 변경하고 지역은 빈값으로 입력합니다.

저장 (컨트롤 S).
에러 메시지가 뜹니다.

BADI를 잘 만든 것으로 확인됩니다.
이글은 아래 링크의 원본 글에 대한 한글 번역 입니다
https://www.sapnuts.com/courses/core-abap/badi-sap/real-time-of-using-badi.html
'ABAP' 카테고리의 다른 글
ABAP Objects 책 PDF (0) | 2016.12.07 |
---|---|
Next Generation ABAP Development 책 PDF (0) | 2016.12.07 |
ABAP에서 대소문자 구분없이 DB 검색하는 방법 (0) | 2016.10.05 |
[번역] 뉴 아밥 디버거 사용 팁 (0) | 2016.08.30 |
[번역] abap2xlsx 설치 방법 (0) | 2016.08.12 |