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: