Skillnaden mellan användarutgång och kundutgång i SAP

⚡ Smart sammanfattning

Användarutgångar och kundutgångar i SAP ABAP är förbättringshooks som lägger till anpassad funktionalitet till standardprogram utan att modifiera SAP kod. Den här sidan förklarar kundutgångstyper, utförda exempel, SMOD- och CMOD-transaktioner, användarutgångar och hur de två teknikerna skiljer sig åt.

  • 🪝 Kärndefinition: En kundutgång är en krok placerad av SAP inuti ett standardprogram, en standardskärm eller en standardmeny där en kund hänger anpassad logik.
  • 🧩 Tre utgångstyper: Funktionsmodulavslut lägger till kod, skärmavslut lägger till fält via en underskärm och menyavslut lägger till objekt i en rullgardinsmeny.
  • 🔍 Lokalisering av utgångar: Transaktionen SMOD listar tillgängliga utgångar, och SE81 bläddrar bland dem efter applikationsområde.
  • 🛠️ Genomförande: Ett projekt skapas i CMOD, det tilldelas en utgång, koden skrivs och projektet aktiveras.
  • 📦 Användarutgång: En användarutgång tjänar samma syfte men finns bara i SD-modulen, med MV45AFZZ som det mest kända exemplet.
  • ⚖️ Att välja en teknik: Användarutgångar är SD-subrutiner, kundutgångar är modulöverskridande och uppgraderingssäkra, och en BAdI är den objektorienterade efterföljaren till båda.

Användarutgång och kundutgång in SAP

Vad är kundutgångar?

Kundutgångar är "krokar" tillhandahålls av SAP inom många standardprogram, skärmar och menyer som kunderna kan "hänga" anpassad funktionalitet för att möta affärskrav. Mer om detta strax…

Den största fördelen är att standarden SAP objektet ändras aldrig. Den anpassade koden finns i en reserverad inkludering eller underskärm som SAP samtal vid rätt tillfälle, så att förbättringen överlever en systemuppgradering istället för att skrivas över. På grund av detta tillhör utgångar familjen av SAP förbättringstekniker tillsammans med det nyare Business Add-In.

Typer av kundutgångar

Det finns tre huvudtyper av kundexit:

  1. Funktionsmodul går ut
  2. Skärmen avslutas
  3. Menyn avslutas

Funktionsmodul ExitDet låter kunden lägga till kod via en funktionsmodul på en specifik plats i en SAP applikationsprogram

Syntax: CALL CUSTOMER-FUNCTION '004'

Avsluta skärmenDet låter kunden lägga till fält på en skärm i en SAP program via en underskärm. Underskärmen anropas inom standardskärmens flödeslogik.

Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2

Meny avsluta: Det låter kunden lägga till objekt i en rullgardinsmeny i en standardmeny SAP programmera. Dessa objekt kan användas för att anropa tilläggsprogram eller anpassade skärmar.

Format: +CUS ( additional item in GUI status )

Exempel på kundavgångar

Exempel på en skärmutgång:

I transaktionen CAT2 – Time Sheet Entry vill HR inkludera en interaktiv bekräftelse på att att medvetet skicka in felaktiga uppgifter är skäl för uppsägning.

Exempel på kundavgångar

Exempel på menyavslut:

I transaktion SE38 – ABAP Editor, vill utvecklingsteamet inkludera en menylänk till transaktion SE80 – Object Navigator för enkel användning.

INNAN

Exempel på kundavgångar

EFTER

Exempel på kundavgångar

Exempel på en funktionsmodulutgång:

Företaget vill att bankuppgifterna för leverantörerna i skapandet av leverantören ska vara obligatoriska händelser. Så det måste blinka ett felmeddelande som "Vänligen ange bankuppgifterna"

INNAN

Exempel på kundavgångar

EFTER

Exempel på kundavgångar

Lokalisera kundutgångar

I transaktion SMOD och titta på detaljerna-

Lokalisera kundutgångar

Eller i transaktion SE81 du kan använda lämpligt applikationsområde

Lokalisera kundutgångar

Skapa en kundutgång

För att skapa en kundutgång måste du först skapa ett projekt i transaktion CMOD

Skapa en kundutgång

Later du tilldelar Customer Exit till ditt projekt.

Hela sekvensen från att hitta utgången till att aktivera koden är kort och följer alltid samma sex steg.

  1. Hitta förbättringen: Leta reda på förbättringsnamnet i SMOD, till exempel komponenten EXIT_SAPMF02K_001 för leverantörsmall.
  2. Skapa projektet: I CMOD anger du ett projektnamn som börjar med Z eller Y och väljer Skapa.
  3. Tilldela förbättringen: På skärmen Förbättringstilldelningar lägger du till förbättringsnamnet som innehåller utgången.
  4. Skriv koden: Öppna funktionsmodulens utgång och placera koden i dess reserverade include, som börjar med ZX.
  5. Hantera skärm och menydelar: För en skärmutgång, bygg underskärmen CUSTSCR, och för en menyutgång, fyll i funktionskoden +CUS i GUI-status.
  6. Aktivera projektet: Aktivera projektet i CMOD så att exit anropas vid körning. Utan aktivering ignoreras koden.

💡 Tips: Inkluderingen av en funktionsmoduls exit börjar med ZX, så den transporteras med projektet. Placera aldrig den anpassade logiken direkt i SAP funktionsmodulen, eftersom det skulle vara en modifiering, inte en förbättring.

Vad är en användarutgång?

User Exit tjänar samma syfte som Customer Exit men de är endast tillgängliga för SD modul. Utgången implementeras som ett anrop till en funktionsmodul. Koden är skriven av utvecklaren.

Väl vet User Exit i SD är MV45AFZZ

  • USEREXIT_FIELD_MODIFICATION – För att ändra skärmattribut
  • USEREXIT_SAVE_DOCUMENT – För att utföra operationer när användaren trycker på Spara
  • USEREXIT_SAVE_DOCUMENT_PREPARE
  • USEREXIT_MOVE_FIELD_TO_VBAK – När ändringar i användarhuvudet flyttas till huvudarbetsområdet.
  • USEREXIT_MOVE_FIELD_TO_VBAP – När ändringar av användarobjekt flyttas till SAP artikel arbetsområde

En användarutgång är tekniskt sett en subrutin (ett FORMULÄR) inuti en SAP include, så den redigeras direkt och kräver en åtkomstnyckel. Detta är den huvudsakliga praktiska skillnaden från en kundutgång, sammanfattad i nästa avsnitt.

Användarutgång kontra kundutgång

Båda teknikerna lägger till anpassat beteende till standard SAP, men de skiljer sig åt i omfattning, teknik och hur uppgraderingssäkra de är. Tabellen nedan jämför dem.

Kriterier Användarutgång Kundutgång
Tillgänglighet Endast SD-modul Över alla SAP moduler
Teknik Subrutin (FORM) i en SAP inkluderar såsom MV45AFZZ Funktionsmodul, skärm eller menyutgång hanterad i SMOD och CMOD
Snabbtangent Kräver en åtkomstnyckel för ändringar Ingen åtkomstnyckel behövs
Upgrade beteende Måste kontrolleras i uppgraderingen med SPAU Upgrade säker, anropad från en reserverad inkludering
Hanteras av Redigerad direkt i inkluderingen Aktiverad genom ett CMOD-projekt

Kundutgångar är den säkrare och mer generella av de två. För förbättringar som ingen av utgångarna kan nå, SAP introducerade senare Business Add-In.

Kundutgångar kontra BAdI

A Företagstillägg (BAdI) är den objektorienterade efterföljaren till kundutgången. Istället för en reserverad include definierar en BAdI ett gränssnitt, och den anpassade logiken finns i en klass som implementerar det. Detta medför två fördelar som en kundutgång inte erbjuder.

  • Flera implementeringar: En BAdI för flera användningsområden tillåter flera oberoende implementeringar av samma förbättring, medan en kundutgång endast tillåter en.
  • Objektorientering: En BAdI arbetar med metoder och klasser, så den passar modern ABAP Objects-utveckling och är enklare att filtrera efter land eller affärsscenario.

Den praktiska regeln är enkel: använd en befintlig kundutgång eller användarutgång när förbättringspunkten redan finns, och använd en BAdI när en ny, återanvändbar förbättringspunkt krävs.

Vanliga frågor

SMOD visar SAP förbättringar och komponenterna i dem. CMOD grupperar en eller flera förbättringar i ett kundprojekt, tilldelar koden och aktiverar den. SMOD är för visning, CMOD är för implementering.

Nej. En kundutgång är en förbättring, inte en modifiering, så ingen åtkomstnyckel behövs. En användarutgång redigeras direkt i en SAP inkluderar och kräver därför en åtkomstnyckel för modifiering.

Kör transaktionen, öppna System och sedan Status för att läsa programnamnet, sök sedan efter förbättringarna för det programmet i SMOD eller SE81. En vanlig genväg är att söka i tabellen MOD.SAP för programmets funktionsgrupp.

AI-assistenter i ABAP-utvecklingsverktyg läser programnamnet och föreslår relevant förbättring, avslutning eller BAdI, och förklarar vad varje ändring innebär. Utvecklaren bekräftar fortfarande valet och skriver logiken inuti den reserverade inkluderingen.

AI-rådgivare väger om en förbättringspunkt redan finns och hur många implementeringar som behövs, och rekommenderar sedan vanligtvis en BAdI eller en förbättringspunkt för nytt arbete.ping klassiska utgångar för punkter som bara existerar som utgångar.

Sammanfatta detta inlägg med: