Unterschied zwischen Benutzerausstieg und Kundenausstieg in SAP
โก Intelligente Zusammenfassung
Benutzerausgรคnge und Kundenausgรคnge in SAP ABAP sind Erweiterungs-Hooks, die Standardprogrammen benutzerdefinierte Funktionalitรคt hinzufรผgen, ohne sie zu verรคndern. SAP Diese Seite erlรคutert die verschiedenen Arten von Kundenausstiegen, gibt Anwendungsbeispiele, erklรคrt die Transaktionen SMOD und CMOD, zeigt Benutzerausstiege auf und erlรคutert die Unterschiede zwischen den beiden Techniken.

Was sind Kundenausgรคnge?
Kundenausgรคnge sind โHakenโ Zur Verfรผgung gestellt von SAP innerhalb vieler Standardprogramme, Bildschirme und Menรผs, auf denen Kunden "aufhรคngen" Individuelle Funktionen zur Erfรผllung Ihrer Geschรคftsanforderungen. Mehr dazu in Kรผrzeโฆ
Der Hauptvorteil besteht darin, dass der Standard SAP Das Objekt wird niemals verรคndert. Der benutzerdefinierte Code befindet sich in einem reservierten Include- oder Subscreen-Bereich. SAP Sie werden zum richtigen Zeitpunkt aufgerufen, sodass die Erweiterung ein System-Upgrade รผbersteht und nicht รผberschrieben wird. Aus diesem Grund gehรถren Exits zur Familie der โฆ SAP Verbesserungstechniken zusammen mit dem neueren Business Add-In.
Arten von Customer-Exits
Es gibt drei Haupttypen von Kundenausstiegen:
- Funktionsmodul-Exits
- Bildschirmausgรคnge
- Das Menรผ wird beendet
Funktionsmodul-ExitEs ermรถglicht dem Kunden, Code รผber ein Funktionsmodul an einer bestimmten Stelle in einem SAP Anwendungsprogramm
Syntax: CALL CUSTOMER-FUNCTION '004'
BildschirmausgangEs ermรถglicht dem Kunden, Felder zu einem Bildschirm hinzuzufรผgen. SAP Programm รผber einen Subscreen. Der Aufruf des Subscreens erfolgt innerhalb der Ablauflogik des Standard-Dynpros.
Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2
Menรผausgang: Es ermรถglicht dem Kunden, Elemente zu einem Dropdown-Menรผ in einem Standardformat hinzuzufรผgen. SAP Programm. Diese Elemente kรถnnen zum Aufrufen von Zusatzprogrammen oder benutzerdefinierten Bildschirmen verwendet werden.
Format: +CUS ( additional item in GUI status )
Beispiele fรผr Customer-Exits
Beispiel fรผr einen Bildschirmausgang:
In der Transaktion CAT2 โ Arbeitszeiterfassung mรถchte die Personalabteilung eine interaktive Bestรคtigung einfรผgen, dass die wissentliche รbermittlung falscher Daten einen Kรผndigungsgrund darstellt.
Beispiel fรผr einen Menรผausgang:
In der Transaktion SE38 โ ABAP Editor mรถchte das Entwicklungsteam zur Vereinfachung der Verwendung einen Menรผlink zur Transaktion SE80 โ Object Navigator einbinden.
VOR
AFTER
Beispiel fรผr einen Funktionsbaustein-Exit:
Das Unternehmen mรถchte, dass die Bankdaten der Lieferanten bei der Lieferantenerstellung ein Pflichtereignis sind. Daher muss eine Fehlermeldung angezeigt werden, die besagt: โBitte geben Sie die Bankdaten ein.โ
VOR
AFTER
Auffinden von Kundenausgรคngen
In Transaktion SMOD und schau dir die Details an-
Oder in einer Transaktion SE81 Sie kรถnnen den entsprechenden Anwendungsbereich nutzen
Erstellen Sie einen Customer-Exit
Um einen Customer-Exit zu erstellen, mรผssen Sie zunรคchst ein Projekt in der Transaktion erstellen CMOD
Later Sie ordnen den Customer-Exit Ihrem Projekt zu.
Die gesamte Abfolge vom Auffinden des Ausgangs bis zur Aktivierung des Codes ist kurz und folgt stets denselben sechs Schritten.
- Die Verbesserung finden: Suchen Sie den Namen der Erweiterung in SMOD, z. B. die Komponente EXIT_SAPMF02K_001 fรผr den Lieferantenstammsatz.
- Projekt erstellen: Geben Sie in CMOD einen Projektnamen ein, der mit Z oder Y beginnt, und wรคhlen Sie โErstellenโ.
- Die Erweiterung zuweisen: Fรผgen Sie im Bildschirm โErweiterungszuweisungenโ den Erweiterungsnamen hinzu, der den Exit enthรคlt.
- Schreiben Sie den Code: รffnen Sie den Funktionsbaustein-Exit und platzieren Sie den Code innerhalb seines reservierten Include-Blocks, der mit ZX beginnt.
- Bedienbildschirm und Menรผelemente: Fรผr einen Bildschirmausgang erstellen Sie den Unterbildschirm CUSTSCR, und fรผr einen Menรผausgang fรผllen Sie den Funktionscode +CUS im GUI-Status aus.
- Projekt aktivieren: Aktivieren Sie das Projekt in CMOD, damit die Exit-Methode zur Laufzeit aufgerufen wird. Ohne Aktivierung wird der Code ignoriert.
๐ก Tipp: Der Include eines Funktionsbaustein-Exits beginnt mit ZX und wird daher mit dem Projekt transportiert. Platzieren Sie die benutzerdefinierte Logik niemals direkt im Include. SAP Funktionsmodul, denn das wรคre eine Modifikation, keine Erweiterung.
Was ist ein Benutzer-Exit?
Benutzer-Exits dienen demselben Zweck wie Kunden-Exits, sind jedoch nur fรผr verfรผgbar SD Modul. Der Exit wird als Aufruf eines Funktionsbausteins implementiert. Der Code wird vom Entwickler geschrieben.
Nun, der User Exit in SD ist bekannt MV45AFZZ
- USEREXIT_FIELD_MODIFICATION โ Zum รndern von Bildschirmattributen
- USEREXIT_SAVE_DOCUMENT โ Um Vorgรคnge auszufรผhren, wenn der Benutzer auf Speichern klickt
- USEREXIT_SAVE_DOCUMENT_PREPARE
- USEREXIT_MOVE_FIELD_TO_VBAK โ Wenn Benutzer-Header-รnderungen in den Header-Arbeitsbereich verschoben werden.
- USEREXIT_MOVE_FIELD_TO_VBAP โ Wenn Benutzerelementรคnderungen verschoben werden nach SAP Artikelarbeitsbereich
Ein Benutzerexit ist technisch gesehen eine Unterroutine (ein FORM) innerhalb eines SAP Es wird also direkt bearbeitet und erfordert einen Zugriffsschlรผssel. Dies ist der wichtigste praktische Unterschied zu einem Kundenausgang, der im nรคchsten Abschnitt zusammengefasst wird.
Benutzerausstieg vs. Kundenausstieg
Beide Techniken fรผgen dem Standardverhalten benutzerdefiniertes Verhalten hinzu. SAPSie unterscheiden sich jedoch in Umfang, Technologie und Upgradesicherheit. Die folgende Tabelle vergleicht sie.
| Eigenschaften | Benutzerausgang | Kundenausgang |
|---|---|---|
| Verfรผgbarkeit | Nur SD-Modul | รber alles SAP Module |
| Technik | Unterprogramm (FORM) in einem SAP Beispiele hierfรผr sind MV45AFZZ | Funktionsbausteine, Bildschirme oder Menรผausgรคnge werden in SMOD und CMOD verwaltet. |
| Access Key | Erfordert einen รnderungszugriffsschlรผssel | Kein Zugangsschlรผssel erforderlich |
| Upgrade Verhalten | Muss beim Upgrade mit SPAU รผberprรผft werden. | Upgrade sicher, aus einem reservierten Bereich angerufen |
| Verwaltet von | Direkt im Include-Ordner bearbeitet | Aktiviert durch ein CMOD-Projekt |
Kundenausgรคnge sind die sicherere und allgemeinere der beiden Optionen. Fรผr Verbesserungen, die mit keinem der beiden Ausgรคnge realisierbar sind, SAP Spรคter wurde das Business Add-In eingefรผhrt.
Kundenausstiege vs. BAdI
A Business Add-In (BAdI) Das BAdI ist der objektorientierte Nachfolger des Kundenexits. Anstelle einer reservierten Include-Anweisung definiert ein BAdI eine Schnittstelle, und die benutzerdefinierte Logik befindet sich in einer Klasse, die diese implementiert. Dies bietet zwei Vorteile gegenรผber einem Kundenexit.
- Mehrere Implementierungen: Ein BAdI mit Mehrfachverwendung ermรถglicht mehrere unabhรคngige Implementierungen derselben Erweiterung, wรคhrend ein Kundenausstieg nur eine einzige Implementierung zulรคsst.
- Objektausrichtung: Ein BAdI arbeitet mit Methoden und Klassen, passt daher gut zur modernen ABAP-Objektentwicklung und lรคsst sich leichter nach Land oder Geschรคftsszenario filtern.
Die praktische Regel ist einfach: Verwenden Sie einen vorhandenen Kundenausstieg oder Benutzerausstieg, wenn der Erweiterungspunkt bereits existiert, und verwenden Sie ein BAdI, wenn ein neuer, wiederverwendbarer Erweiterungspunkt benรถtigt wird.








