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.

  • 🪝 Kerndefinition: Ein Kundenausgang ist ein Haken, der angebracht wird von SAP innerhalb eines Standardprogramms, -bildschirms oder -menüs, an dem ein Kunde benutzerdefinierte Logik anhängt.
  • 🧩 Drei Ausstiegsarten: Funktionsbausteinausgänge fügen Code hinzu, Bildschirmausgänge fügen Felder über einen Unterbildschirm hinzu und Menüausgänge fügen Elemente zu einem Dropdown-Menü hinzu.
  • 🔍 Ausgänge finden: Die Transaktion SMOD listet die verfügbaren Ausgänge auf, und SE81 durchsucht sie nach Anwendungsbereich.
  • ️ Implementierung: In CMOD wird ein Projekt erstellt, der Exit wird ihm zugewiesen, der Code wird geschrieben und das Projekt wird aktiviert.
  • 📦 Benutzerausgang: Ein Benutzerausgang dient dem gleichen Zweck, existiert aber nur im SD-Modul, wobei MV45AFZZ das bekannteste Beispiel ist.
  • ️ Auswahl einer Technik: Benutzerexits sind SD-Subroutinen, Kundenexits sind modulübergreifend und upgradesicher, und ein BAdI ist der objektorientierte Nachfolger von beiden.

Benutzerausstieg und Kundenausstieg in SAP

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:

  1. Funktionsmodul-Exits
  2. Bildschirmausgänge
  3. 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.

Beispiele für Customer-Exits

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

Beispiele für Customer-Exits

AFTER

Beispiele für Customer-Exits

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

Beispiele für Customer-Exits

AFTER

Beispiele für Customer-Exits

Auffinden von Kundenausgängen

In Transaktion SMOD und schau dir die Details an-

Auffinden von Kundenausgängen

Oder in einer Transaktion SE81 Sie können den entsprechenden Anwendungsbereich nutzen

Auffinden von Kundenausgängen

Erstellen Sie einen Customer-Exit

Um einen Customer-Exit zu erstellen, müssen Sie zunächst ein Projekt in der Transaktion erstellen CMOD

Erstellen Sie einen Customer-Exit

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.

  1. Die Verbesserung finden: Suchen Sie den Namen der Erweiterung in SMOD, z. B. die Komponente EXIT_SAPMF02K_001 für den Lieferantenstammsatz.
  2. Projekt erstellen: Geben Sie in CMOD einen Projektnamen ein, der mit Z oder Y beginnt, und wählen Sie „Erstellen“.
  3. Die Erweiterung zuweisen: Fügen Sie im Bildschirm „Erweiterungszuweisungen“ den Erweiterungsnamen hinzu, der den Exit enthält.
  4. Schreiben Sie den Code: Öffnen Sie den Funktionsbaustein-Exit und platzieren Sie den Code innerhalb seines reservierten Include-Blocks, der mit ZX beginnt.
  5. 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.
  6. 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.

Häufig gestellte Fragen

SMOD zeigt die SAP Erweiterungen und die darin enthaltenen Komponenten. CMOD gruppiert eine oder mehrere Erweiterungen in einem Kundenprojekt, weist den Code zu und aktiviert ihn. SMOD dient der Ansicht, CMOD der Implementierung.

Nein. Ein Kundenausstieg ist eine Erweiterung, keine Modifikation, daher ist kein Zugriffsschlüssel erforderlich. Ein Benutzerausstieg wird direkt in einem Benutzer bearbeitet. SAP beinhaltet und erfordert daher einen Änderungszugriffsschlüssel.

Führen Sie die Transaktion aus, öffnen Sie „System“ und anschließend „Status“, um den Programmnamen zu ermitteln. Suchen Sie dann in SMOD oder SE81 nach den Erweiterungen dieses Programms. Eine gängige Abkürzung ist die Suche in der Tabelle MOD.SAP für die Funktionsgruppe des Programms.

KI-Assistenten in ABAP-Entwicklungswerkzeugen lesen den Programmnamen und schlagen die passende Erweiterung, den Exit oder das BAdI vor und erläutern die jeweiligen Änderungen. Der Entwickler bestätigt die Auswahl und implementiert die Logik im reservierten Include.

KI-Berater prüfen, ob bereits ein Verbesserungspunkt existiert und wie viele Implementierungen erforderlich sind, und empfehlen dann in der Regel ein BAdI oder einen Verbesserungspunkt für neue Aufgaben.ping Klassische Ausgänge für Punkte, die nur als Ausgänge existieren.

Fassen Sie diesen Beitrag mit folgenden Worten zusammen: