SAP 표준(STD) 프로그램의 소스를 직접 고치면, 추후 업그레이드·노트 적용 시 충돌이 나고 표준 수정(Modification) 부담을 떠안게 됩니다. 그래서 SAP은 표준 소스를 건드리지 않고 로직을 끼워 넣는 확장 포인트를 제공합니다. 대표적으로 세 가지를 구분해 두면 상황에 맞게 고를 수 있습니다.
BADI(Business Add-In)는 객체지향 기반의 확장 포인트로, 보통 로직으로 제약을 걸거나 동작을 추가할 때 사용합니다.
표준 화면에 SCREEN을 붙이거나 CBO(커스텀) 필드를 추가해야 하는 경우에는 CMOD에서 User Exit(특히 Screen Exit)를 사용해야 합니다. 이 영역은 BADI로는 처리할 수 없습니다.
실무에서 자주 쓰는 조합은 다음과 같습니다.
표준 화면에 커스텀 필드/서브스크린을 배치한다.
그 화면의 필드를 로직으로 제어(활성/비활성, 값 검증 등)한다.
즉 "화면 배치는 Screen Exit, 그 화면의 동작 제어는 BADI" 로 역할을 나눠 쓰는 패턴입니다.
Enhancement Spot(Enhancement Framework)은 BAPI나 SAP이 표준으로 제공하는 기능/함수가 실행되는 지점에서, 예외 로직이나 추가 체크를 끼워 넣어야 할 때 사용합니다. 표준 함수 호출 전후에 우리만의 검증/보정 로직을 붙이는 식입니다.
확장 포인트의 제공 여부와 이름은 표준 트랜잭션·릴리스(S/4HANA 등)에 따라 다릅니다. 실제로 어떤 BADI/Exit가 어디서 호출되는지는 디버깅이나 SE18/SE19, Enhancement 분석으로 시스템에서 직접 확인하세요.
Disclaimer — 이 포스트는 AI(Claude)를 활용하여 작성된 초안을 바탕으로 검수 및 보완하여 작성되었습니다. 내용 중 오류나 오타가 있다면 댓글로 알려주시면 감사하겠습니다.