사용자 종료와 고객 종료의 차이점 SAP
⚡ 스마트 요약
사용자 종료 및 고객 종료 SAP ABAP 확장 후크는 표준 프로그램을 수정하지 않고 사용자 정의 기능을 추가하는 도구입니다. SAP 이 페이지에서는 고객 종료 유형, 예제, SMOD 및 CMOD 트랜잭션, 사용자 종료, 그리고 두 기법의 차이점에 대해 설명합니다.

고객 출구란 무엇인가요?
고객 이탈은 "후크" 에 의해 제공 SAP 고객이 사용할 수 있는 다양한 표준 프로그램, 화면 및 메뉴 내에서 "걸다" 비즈니스 요구사항을 충족하는 맞춤형 기능입니다. 잠시 후 자세히 설명드리겠습니다…
핵심적인 이점은 표준이라는 점입니다. SAP 해당 객체는 절대 수정되지 않습니다. 사용자 정의 코드는 예약된 포함 영역 또는 하위 화면에 위치합니다. SAP 적절한 시점에 호출되므로 시스템 업그레이드 시 덮어쓰기되지 않고 개선 사항이 유지됩니다. 이러한 이유로 종료 루틴은 해당 루틴의 계열에 속합니다. SAP 향상된 기술과 새로운 비즈니스 추가 기능이 함께 제공됩니다.
고객 이탈 유형
고객 이탈에는 세 가지 주요 유형이 있습니다.
- 기능 모듈 종료
- 화면 종료
- 메뉴 종료
기능 모듈 종료고객이 함수 모듈을 통해 특정 위치에 코드를 추가할 수 있도록 합니다. SAP 응용프로그램
Syntax: CALL CUSTOMER-FUNCTION '004'
화면 종료고객이 화면에 필드를 추가할 수 있도록 합니다. SAP 프로그램 하위 화면을 통해. 하위 화면은 표준 화면의 흐름 로직 내에서 호출됩니다.
Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2
메뉴 종료: 이 기능을 통해 고객은 표준 드롭다운 메뉴에 항목을 추가할 수 있습니다. SAP 프로그램. 이러한 항목은 추가 기능 프로그램이나 사용자 정의 화면을 호출하는 데 사용될 수 있습니다.
Format: +CUS ( additional item in GUI status )
고객 이탈의 예
화면 종료의 예:
CAT2(근무 시간표 입력) 트랜잭션에서 HR은 의도적으로 잘못된 데이터를 제출하는 것은 해고 사유가 된다는 것을 알려주는 대화형 확인 메시지를 포함하려고 합니다.
메뉴 종료의 예:
트랜잭션 SE38 – ABAP Editor에서 개발 팀은 사용 편의성을 위해 트랜잭션 SE80 – Object Navigator에 대한 메뉴 링크를 포함하려고 합니다.
전에
한 후에
기능 모듈 종료의 예:
회사는 공급업체 생성 시 공급업체의 은행 세부 정보를 필수 이벤트로 지정하고자 합니다. 따라서 '은행 세부 정보를 입력하세요'라는 오류 메시지를 표시해야 합니다.
전에
한 후에
고객 출구 찾기
거래중 스모드 그리고 세부 사항을 살펴보세요-
아니면 거래중 SE81 적절한 적용 영역을 사용할 수 있습니다
고객 이탈 생성
고객 이탈을 생성하려면 먼저 트랜잭션에서 프로젝트를 생성해야 합니다. CMOD
Later 프로젝트에 Customer Exit를 할당합니다.
출구를 찾는 것부터 코드를 활성화하는 것까지의 전체 과정은 간단하며, 항상 동일한 6단계로 진행됩니다.
- 개선 사항을 찾아보세요: SMOD에서 확장 기능 이름을 찾으세요. 예를 들어 EXIT_ 컴포넌트입니다.SAP벤더 마스터의 경우 MF02K_001입니다.
- 프로젝트를 생성하세요: CMOD에서 Z 또는 Y로 시작하는 프로젝트 이름을 입력하고 만들기를 선택합니다.
- 개선 사항을 할당합니다. 확장 할당 화면에서 종료 루틴이 포함된 확장 이름을 추가합니다.
- 코드를 작성하세요: 함수 모듈 exit를 열고 해당 모듈의 예약된 include 문(ZX로 시작) 안에 코드를 넣으세요.
- 화면 및 메뉴 부분을 처리합니다. 화면 종료의 경우 CUSTSCR 서브스크린을 생성하고, 메뉴 종료의 경우 GUI 상태에 +CUS 기능 코드를 입력합니다.
- 프로젝트를 활성화하세요: CMOD에서 프로젝트를 활성화하면 런타임에 종료 메서드가 호출됩니다. 활성화하지 않으면 해당 코드는 무시됩니다.
💡 팁: 함수 모듈 종료 루틴을 포함하려면 해당 루틴이 ZX로 시작해야 하므로 프로젝트와 함께 전송됩니다. 사용자 정의 로직을 절대로 직접 해당 위치에 배치하지 마십시오. SAP 함수 모듈이라고 하는 이유는 그것은 개선이 아니라 수정이기 때문입니다.
사용자 종료(User Exit)란 무엇인가요?
사용자 종료는 고객 종료와 동일한 목적으로 사용되지만 다음 경우에만 사용할 수 있습니다. SD 기준 치수. 종료는 함수 모듈에 대한 호출로 구현됩니다. 코드는 개발자가 작성합니다.
SD의 User Exit는 MV45AFZZ
- USEREXIT_FIELD_MODIFICATION – 화면 속성을 수정하려면
- USEREXIT_SAVE_DOCUMENT – 사용자가 저장을 누를 때 작업을 수행합니다.
- USEREXIT_SAVE_DOCUMENT_PREPARE
- USEREXIT_MOVE_FIELD_TO_VBAK – 사용자 헤더 변경 사항이 헤더 작업 영역으로 이동되는 경우.
- USEREXIT_MOVE_FIELD_TO_VBAP – 사용자 항목 변경 사항이 다음으로 이동되는 경우 SAP 아이템 작업 영역
사용자 종료 루틴은 기술적으로 폼(FORM) 내부에 있는 서브루틴입니다. SAP 포함되므로 직접 편집할 수 있으며 액세스 키가 필요합니다. 이는 다음 섹션에서 요약된 고객 출구와의 주요 실질적인 차이점입니다.
사용자 이탈 vs 고객 이탈
두 기술 모두 표준 기능에 사용자 지정 동작을 추가합니다. SAP하지만 범위, 기술, 업그레이드 안전성 측면에서 차이가 있습니다. 아래 표에서 비교해 보세요.
| 기준 | 사용자 종료 | 고객 출구 |
|---|---|---|
| 이용 가능 여부 (Availability) | SD 모듈 전용 | 모두에 걸쳐 SAP 모듈 |
| 기술 | 서브루틴(FORM) SAP MV45AFZZ와 같은 모델이 포함됩니다. | SMOD 및 CMOD에서 관리되는 기능 모듈, 화면 또는 메뉴 종료 |
| 액세스 키 | 수정 액세스 키가 필요합니다. | 액세스 키가 필요하지 않습니다. |
| Upgrade 행동 | SPAU를 사용한 업그레이드 시 확인해야 합니다. | Upgrade 안전함, 예약된 곳에서 호출됨 |
| 에 의해 관리받는 | 포함 파일에서 직접 편집됨 | CMOD 프로젝트를 통해 활성화됨 |
고객 출구는 두 가지 방법 중 더 안전하고 일반적입니다. 두 출구 모두에서 접근할 수 없는 개선 사항의 경우, SAP 이후 비즈니스 추가 기능을 도입했습니다.
고객 이탈 vs BAdI
A 비즈니스 추가 기능(BAdI) BAdI는 고객 종료 루틴의 객체 지향적 후속 개념입니다. 예약된 include 문 대신, BAdI는 인터페이스를 정의하고, 사용자 정의 로직은 해당 인터페이스를 구현하는 클래스에 구현됩니다. 이는 고객 종료 루틴에는 없는 두 가지 장점을 제공합니다.
- 다양한 구현 방식: 다중 사용 BAdI는 동일한 기능 향상에 대한 여러 독립적인 구현을 허용하는 반면, 고객 종료 루틴은 하나만 허용합니다.
- 객체 지향: BAdI는 메서드와 클래스를 사용하므로 최신 ABAP 객체 개발 방식에 적합하며 국가 또는 비즈니스 시나리오별로 필터링하기가 더 쉽습니다.
실질적인 규칙은 간단합니다. 확장 지점이 이미 존재하는 경우 기존 고객 종료 또는 사용자 종료를 사용하고, 새롭고 재사용 가능한 확장 지점이 필요한 경우 BAdI를 사용하십시오.








