Verschil tussen gebruikersuitgang en klantuitgang in SAP
โก Slimme samenvatting
Gebruikersuitgangen en klantuitgangen in SAP ABAP-uitbreidingshooks voegen aangepaste functionaliteit toe aan standaardprogramma's zonder deze te wijzigen. SAP Deze pagina legt klant-exittypen uit, bevat uitgewerkte voorbeelden, de SMOD- en CMOD-transacties, gebruikers-exitpunten en hoe de twee technieken van elkaar verschillen.

Wat zijn klantuitgangen?
Klantuitgangen zijn โhakenโ door SAP binnen veel standaardprogramma's, schermen en menu's waarop klanten kunnen klikken "hangen" Aangepaste functionaliteit om aan de zakelijke eisen te voldoen. Daarover zo meerโฆ
Het belangrijkste voordeel is dat de standaard SAP Het object wordt nooit gewijzigd. De aangepaste code bevindt zich in een gereserveerde include of subscreen. SAP roept de functie op het juiste moment aan, zodat de verbetering een systeemupgrade overleeft in plaats van te worden overschreven. Hierdoor behoren exits tot de familie van SAP verbeteringstechnieken in combinatie met de nieuwere Business Add-In.
Soorten klantuitgangen
Er zijn drie hoofdtypen klantuitgangen:
- Functiemodule verlaat
- Scherm wordt afgesloten
- Menu wordt afgesloten
Functie Module AfsluitenHet stelt de klant in staat om code toe te voegen via een functiemodule op een specifieke locatie in een SAP applicatieprogramma
Syntax: CALL CUSTOMER-FUNCTION '004'
Scherm afsluitenHet stelt klanten in staat om velden aan een scherm toe te voegen. SAP programma via een subscherm. Het subscherm wordt opgeroepen binnen de stroomlogica van het standaardscherm.
Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2
Menu afsluiten: Het stelt klanten in staat om items toe te voegen aan een uitklapmenu in een standaardomgeving. SAP programma. Deze items kunnen worden gebruikt om aanvullende programma's of aangepaste schermen aan te roepen.
Format: +CUS ( additional item in GUI status )
Voorbeelden van klantexits
Voorbeeld van een schermafsluiting:
In transactie CAT2 โ Urenregistratie wil HR een interactieve erkenning opnemen dat het bewust indienen van onjuiste gegevens reden is voor ontslag.
Voorbeeld van een menu-uitgang:
In transactie SE38 โ ABAP Editor wil het ontwikkelingsteam voor gebruiksgemak een menulink opnemen naar transactie SE80 โ Object Navigator.
VOOR
NA
Voorbeeld van een functiemodule-exit:
Het bedrijf wil dat de bankgegevens van de leveranciers verplicht worden ingevoerd bij het aanmaken van de leverancier. Daarom moet er een foutmelding verschijnen met de tekst 'Voer de bankgegevens in'.
VOOR
NA
Lokaliseren van klantenuitgangen
In transactie SMOD en kijk naar de details-
Of in transactie SE81 u kunt het juiste toepassingsgebied gebruiken
Maak een klantexit aan
Om een โโklantexit aan te maken, moet u eerst een project in transactie aanmaken CMOD
Later u wijst de Customer Exit toe aan uw project.
De volledige procedure, van het vinden van de uitgang tot het activeren van de code, is kort en volgt altijd dezelfde zes stappen.
- Zoek de verbetering: Zoek de naam van de verbetering in SMOD, bijvoorbeeld de component EXIT_.SAPMF02K_001 voor de leveranciersstamgegevens.
- Maak het project aan: Voer in CMOD een projectnaam in die begint met een Z of een Y en kies 'Maken'.
- Wijs de verbetering toe: Voeg op het scherm 'Verbeteringstoewijzingen' de verbeteringsnaam toe die de exit bevat.
- Schrijf de code: Open de exit-functie van de module en plaats de code binnen de gereserveerde include, die begint met ZX.
- Beheer de scherm- en menuonderdelen: Voor het verlaten van een scherm, bouw je het CUSTSCR-subscherm en voor het verlaten van een menu, vul je de functiecode +CUS in bij de GUI-status.
- Activeer het project: Activeer het project in CMOD zodat de exit-functie tijdens de uitvoering wordt aangeroepen. Zonder activering wordt de code genegeerd.
๐กTip: De include van een exit-functiemodule begint met ZX, dus deze wordt met het project meegetransporteerd. Plaats de aangepaste logica nooit rechtstreeks in de SAP functiemodule, want dat zou een aanpassing zijn, geen verbetering.
Wat is een gebruikersafsluiting?
User Exit heeft hetzelfde doel als Customer Exit, maar is alleen beschikbaar voor de SD module. De exit wordt geรฏmplementeerd als een oproep naar een functiemodule. De code is geschreven door de ontwikkelaar.
Bekend is dat User Exit in SD dat is MV45AFZZ
- USEREXIT_FIELD_MODIFICATION โ Om schermkenmerken te wijzigen
- USEREXIT_SAVE_DOCUMENT โ Om bewerkingen uit te voeren wanneer de gebruiker op Opslaan klikt
- USEREXIT_SAVE_DOCUMENT_PREPARE
- USEREXIT_MOVE_FIELD_TO_VBAK โ Wanneer wijzigingen in de gebruikerskoptekst worden verplaatst naar het koptekstwerkgebied.
- USEREXIT_MOVE_FIELD_TO_VBAP โ Wanneer wijzigingen in gebruikersitems worden verplaatst naar SAP artikel werkruimte
Een gebruikersafsluiting is technisch gezien een subroutine (een FORM) binnen een SAP Het bestand wordt direct bewerkt en vereist een toegangssleutel. Dit is het belangrijkste praktische verschil met een klantuitgang, zoals samengevat in de volgende sectie.
Gebruikersuitgang versus klantuitgang
Beide technieken voegen aangepast gedrag toe aan de standaardfunctionaliteit. SAPZe verschillen echter in reikwijdte, technologie en hoe veilig ze zijn bij upgrades. De onderstaande tabel vergelijkt ze.
| criteria | Gebruikersuitgang | Klanten verlaten |
|---|---|---|
| Beschikbaarheid | Alleen SD-module | over alles SAP modules |
| Techniek | Subroutine (FORM) in een SAP inclusief bijvoorbeeld MV45AFZZ | Functiemodule, scherm of menu-uitgang beheerd in SMOD en CMOD |
| Toegangssleutel | Vereist een toegangssleutel voor wijzigingen. | Geen toegangssleutel nodig |
| Upgrade gedrag | Moet worden gecontroleerd tijdens de upgrade met SPAU. | Upgrade veilig, opgeroepen vanuit een gereserveerde plaats inclusief |
| Beheerd door | Direct bewerkt in de include | Geactiveerd via een CMOD-project |
Klantenuitgangen zijn de veiligere en meest algemene van de twee. Voor verbeteringen die via geen van beide uitgangen bereikbaar zijn, SAP later werd de Business Add-In geรฏntroduceerd.
Klantuitgangen versus BAdI
A Business Add-In (BAdI) Een BAdI is de objectgeoriรซnteerde opvolger van de customer exit. In plaats van een gereserveerde include definieert een BAdI een interface, en de aangepaste logica bevindt zich in een klasse die deze implementeert. Dit biedt twee voordelen die een customer exit niet heeft.
- Meerdere implementaties: Een BAdI voor meervoudig gebruik maakt meerdere onafhankelijke implementaties van dezelfde uitbreiding mogelijk, terwijl een klantexit er slechts รฉรฉn toestaat.
- Objectoriรซntatie: Een BAdI werkt met methoden en klassen, waardoor deze geschikt is voor moderne ABAP Objects-ontwikkeling en gemakkelijker te filteren is op land of bedrijfsscenario.
De praktische regel is eenvoudig: gebruik een bestaande klant- of gebruikersuitgang wanneer het uitbreidingspunt al bestaat, en gebruik een BAdI wanneer een nieuw, herbruikbaar uitbreidingspunt nodig is.








