앞 전에 우리는 SAP R/3 구현 방법의 4가지를 알아보았다.
2020/08/11 - [분류 전체보기] - SAP R/3 구현 방법
그 중 하나인 Enhancement는 실무에서는 흔히 'EXIT' 이라고 불리고 있지만
사실 Enhancement를 구현하기 위한 방법 중 하나이지 그 외 다양한 방법이 존재한다.
오늘은 가장 많이 사용하는 Enhancement 중 모듈에서 공통적으로 많이 사용하는
Customer Exit과 Badi에 대해서 포스팅 해보도록 하겠다.
Enhancement는 일반적으로 표준 프로그램 아무 곳에나 개발 소스를 확장할 수는 없으며
표준에서 미리 정해진 곳에서만 적용할 수 있다.
그 정해진 위치는 일반적으로 프로그램의 프로세스 구간구간 별로 나누어 놓았으며,
프로그램 시작 시점, 저장 전 시점. 저장 후 시점 등을 예로 들 수 있다.
Customer Exit
가장 많이 사용하는 Enhancement 방법으로 Enhancement를 흔히 'EXIT'이라 불리는 이유가 여기에 있다.
T-Code 'SMOD'를 통해 SAP에서 제공하는 Enhancement 를 조회하여 해당하는 Customer Exit을 찾아볼 수 있다.
화면과 같이 Customer Exit은 4가지 영역으로 나눈다.
- Function Exits - 프로그램 Source Code 확장
- Function codes - 프로그램 Menu Path 확장 ,
- Screen Area - 프로그램 Screen확장
- Includes - Table의 확장 구조의 필드 확장
원하는 Customer Exit( Enhancement 번호) 을 찾았으면 필요한 Enhancement 들을 Group 화하고
관리할 수 있는 단위인 'Project'를 생성하고 그 곳에 Assign을 한다. ( T-Code 'CMOD' )
해당 Enhancement 번호를 Assign한 후 Component 내역 중 원하는 Customer Exit에 작업을 하면 된다.
Function Exit은 Function 내의 'Z~' 시작하는 인클루드 프로그램을 통해 원하는 로직을 적용한다.
Badi ( Business Add-In )
Customer Exit 과 유사하지만 좀 더 확장된 개념으로 OO( Oriented Object )가 도입되면서
Class기반으로 구현되어져 있다.
즉, Customer Exit은 Function Base로 Badi는 Class Base로 구현되어 있는 점이 큰 차이점이다.
기본적으로 Customer Exit 처럼 Source Code, Screen, Menu 를 확장할 수 있다.
추가 속성으로는 Multiple-Use 와 Filter-Depend 옵션이 존재하며 Customer Exit에는 존재하지 않는 부분이다.
* Multiple Use는 해당 Badi의 구현부를 여러개 만들 수 있음을 말한다.
* Filter-Depend. 적용시 해당 Type의 정해진 값인 경우만 구현부를 호출하도록 한다.
Badi 는 정의부와 구현부로 나뉘어 있으며, 표준에서는 사전에 Badi가 정의되어 프로그램
프로세스 구간별로 심어져 있다.
구현부 클래스는 정의부를 기반으로 생성하고 그 안의 Method에 확장할 추가 로직을
삽입하여 적용한다.
어떤 경우에서는 표준 프로그램에서 동일 프로세스 구간에 Customer Exit 과 Badi 둘 다
확장 공간이 존재하는 경우도 있다.
딱히 정답은 없으므로 원하는 Enhancement 방법을 택해도 무방하다.
유지보수 측면에서는 이미 Enhancement가 반영된 곳이 있다면 그 곳에 이어서
추가하는 것을 좀 더 권장하는게 양쪽에 로직이 분산되면 그 만큼 관리포인트가 늘어나기 때문이다.
'ABAP Basic Lv. > Overview' 카테고리의 다른 글
|ABAP Overview| Enhancement Overview #2 (0) | 2020.09.14 |
---|---|
|ABAP Overview| ABAP Dictionary (0) | 2020.09.03 |
|ABAP Overview| CBO 프로그램 패턴 (TYPE-1 Prog.) (0) | 2020.09.02 |
|ABAP Overview| ABAP Unique Concept (0) | 2020.09.01 |
|ABAP Overview| SAP Customizing 구현 방법 (0) | 2020.09.01 |