본문 바로가기

개발자愛/SAP

SAP/ABAP - BAdI 예제 (구매처 생성/변경/조회 시 기능확장)

일하면서 자주 쓸 일이 없는 사항이기에, 한번 두번 해보고 세월이 흐르면 잊어버리는 것..

Screen Exit 을 생각하고 의뢰가 왔었으나, 스크린 엑싯은 불가하고...

BAdI 로 가능한 작업이기에...마침 할 일이 생겼을 때 정리하자 싶어 캡쳐 떠서 정리해봅니다.

혼자 정리하며 올리는 글이기에, 혼잣말로 웅얼웅얼 합니다..^^;;


※ 이번 작업의뢰가... 구매처 생성/변경/조회 의 화면이었기에 해당 화면으로 캡쳐함.

(하기 리스트 추출은 프로그램을 짜서 한 것으로 T-code가 아닙니다)



먼저 조회를 해보니.. 구매처 화면 추가에는 몇 개의 BADI가 존재 하는데...

그 중 내가 필요한 것은 VENDOR_ADD_DATAVENDOR_ADD_DATA_CS 두 개!!

VENDOR_ADD_DATA에 대해 구매처 마스터 등록/변경/조회 시 정보를 확인하며 추가 작업을 지정하고 

VENDOR_ADD_DATA_CS를 이용해 원하는 화면을 만들어 추가하면 됨


 

작업에 앞서 IMG 에서 세팅이 되어야  하는데~

 구매처 마스터레코드에서 수정사항이 없는 확장 준비비지니스 애드인: 고객 하위화면 두개 의 셋팅이 필요함.

구매처 마스터레코드에서 수정사항이 없는 확장 준비 부터~



Pre.1 - 먼저 화면 그룹의 정의부터!!!

            구매처 화면그룹 편집에 새로운 항목을 추가 후 저장 버튼을 Click~!!


 

Pre.2 - 추가한 값을 선택 후 좌측의 라벨 탭 페이지를 더블 클릭하여 이동~ 값을 채워 넣으면 됨 


1. 수 의 값은 유니크(Unique) 한 값으로 임의 지정하여 넣으면 되며

2. 기능코드 경우는 화면의 이름 정도로 인식하면 될 듯

3. 내역 및 아이콘 경우 아래의 화면에서 보이겠지만, 탭의 이름과 함께 나오는 아이콘임.


이제 하나씩 시작!!!



1. SE19 에서 Classic BAdI 에  VENDOR_ADD_DATA 값을 넣고 “Create Impl.”  버튼을 Click~




2. 새 Implementation Name을 넣은 후 Click~~




3. Implementation Short Text  내역을 넣은 후 컴파일(활성화).




4. 생성된 Implement 을 포함시킬 Enhancement Implement 를 선택 하거나 새로 생성.
 

    - 만들어 둔 것이 없었으므로 새로이 생성 함




5. 새로이 이름을 넣고 지정 후~ Click~~
 





6. Interface Tab을 Click~ 그리고 CHECK_ADD_ON_ACTIVE 를 Double Click~~
     




7. 언제 동작할 지의 정의가 있어야 하므로 내용을 넣어 줌!
 
    - 최초 IMG 에서 화면 그룹을 Z5로 만들었으므로 해당 값으로 세팅!
 




8. 동작이 될 때 출력될 화면을 그려줌~ (입력과 출력에 대한 부분은 PBO / PAI 에 정의)


★ 이때 주의 해야할 사항!!!  화면 생성시 Sub Screen 으로 생성해야 함.




8. 앞서 VENDOR_ADD_DATA 를 생성했으니 VENDOR_ADD_DATA _CS 생성!!!

    - 앞서 선언했던 화면 그룹을 지정해 줌 




9. Interface 탭을 선택
.
 
    -  
GET_TAXI_SCREEN method가 사용자가 선택할 때 보여질 sub screen을 지정
 

 
 

10. 
GET_TAXI_SCREEN method  .

 




12. IMG 세팅에서 비지니스 애드인 : 고객 하위화면 설정
 .


 



이후 실행을 해보면!!!!




메뉴를 클릭해보면?



이와 같이 추가되었습니다~


스크린 엑싯(Screen Exit)이 없다는 이유로 추가가 되지 않으려나 생각했었지만...

BAdI 가 있어 구현이 가능했던 부분이군요~ 잊어버릴까봐 캡쳐 & 블로깅 해둡니다~

혹시나 검색을 통해 들어오는 분이 계시다면... 작은 도움이라도 되길 바랍니다~