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.








