Forskellen mellem brugerudgang og kundeudgang i SAP

⚡ Smart opsummering

Brugerudgange og kundeudgange i SAP ABAP er forbedringshooks, der tilføjer brugerdefineret funktionalitet til standardprogrammer uden at ændre SAP kode. Denne side forklarer kunders exit-typer, udregnede eksempler, SMOD- og CMOD-transaktioner, brugerexits og hvordan de to teknikker adskiller sig.

  • 🪝 Kernedefinition: En kundeudgang er en krog placeret af SAP inde i et standardprogram, en standardskærm eller en standardmenu, hvor en kunde hænger brugerdefineret logik op.
  • 🧩 Tre udgangstyper: Funktionsmodulafslutninger tilføjer kode, skærmafslutninger tilføjer felter via et underskærmbillede, og menuafslutninger tilføjer elementer til en rullemenu.
  • 🔍 Lokalisering af udgange: Transaktion SMOD viser de tilgængelige exits, og SE81 gennemser dem efter applikationsområde.
  • 🛠️ Gennemførelse: Et projekt oprettes i CMOD, det får tildelt en exit, koden skrives, og projektet aktiveres.
  • 📦 Brugerudgang: En brugerudgang tjener samme formål, men findes kun i SD-modulet, med MV45AFZZ som det bedst kendte eksempel.
  • ⚖️ Valg af en teknik: Brugerexits er SD-underrutiner, kundeexits er sikre på tværs af moduler og opgraderingssikre, og en BAdI er den objektorienterede efterfølger til begge.

Brugerudgang og kundeudgang i SAP

Hvad er kunde-exits?

Kundeudgange er "kroge" fra SAP indenfor mange standardprogrammer, skærme og menuer, hvorpå kunderne evt "hænge" Tilpasset funktionalitet, der opfylder forretningskrav. Mere om dette om et øjeblik…

Den vigtigste fordel er, at standarden SAP objektet ændres aldrig. Den brugerdefinerede kode sidder i en reserveret inkludering eller underskærm, der SAP opkald på det rigtige tidspunkt, så forbedringen overlever en systemopgradering i stedet for at blive overskrevet. På grund af dette tilhører exits familien af SAP forbedringsteknikker sammen med det nyere Business Add-in.

Typer af kundeudgange

Der er tre hovedtyper af kundeudgange:

  1. Funktionsmodul afsluttes
  2. Skærm afsluttes
  3. Menuen afsluttes

Funktionsmodul AfslutDet giver kunden mulighed for at tilføje kode via et funktionsmodul på en specifik placering i en SAP ansøgningsprogram

Syntax: CALL CUSTOMER-FUNCTION '004'

Skærm AfslutDet giver kunden mulighed for at tilføje felter til en skærm i en SAP program via en underskærm. Underskærmen kaldes inden for standardskærmens flowlogik.

Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2

Menu Afslut: Det giver kunden mulighed for at tilføje elementer til en rullemenu i en standard SAP program. Disse elementer kan bruges til at kalde tilføjelsesprogrammer eller brugerdefinerede skærme.

Format: +CUS ( additional item in GUI status )

Eksempler på kundeudgange

Eksempel på en skærmudgang:

I transaktion CAT2 – Time Sheet Entry ønsker HR at inkludere en interaktiv anerkendelse af, at bevidst indsendelse af ukorrekte data er grund til afskedigelse.

Eksempler på kundeudgange

Eksempel på menuafslutning:

I transaktion SE38 – ABAP Editor ønsker udviklingsteamet at inkludere et menulink til transaktion SE80 – Object Navigator for at gøre det nemt at bruge.

FØR

Eksempler på kundeudgange

EFTER

Eksempler på kundeudgange

Eksempel på en funktionsmoduludgang:

Virksomheden ønsker, at bankoplysningerne for kreditorerne i kreditoroprettelsen skal være obligatoriske begivenheder. Så den skal blinke en fejlmeddelelse om, at 'Indtast venligst bankoplysninger'

FØR

Eksempler på kundeudgange

EFTER

Eksempler på kundeudgange

Lokalisering af kundeudgange

I transaktion SMOD og se detaljerne -

Lokalisering af kundeudgange

Eller i transaktion SE81 du kan bruge det relevante anvendelsesområde

Lokalisering af kundeudgange

Opret en kundeafslutning

For at oprette en kundeexit skal du først oprette et projekt i transaktion CMOD

Opret en kundeafslutning

Later du tildeler Customer Exit til dit projekt.

Hele sekvensen fra at finde udgangen til at aktivere koden er kort, og den følger altid de samme seks trin.

  1. Find forbedringen: Find navnet på forbedringen i SMOD, for eksempel komponenten EXIT_SAPMF02K_001 for leverandørstamdataene.
  2. Opret projektet: I CMOD skal du indtaste et projektnavn, der starter med Z eller Y, og vælge Opret.
  3. Tildel forbedringen: På skærmbilledet Forbedringstildelinger skal du tilføje det forbedringsnavn, der indeholder exit'en.
  4. Skriv koden: Åbn funktionsmodulets exit, og placer koden i dens reserverede include, som starter med ZX.
  5. Håndter skærm- og menudele: For en skærmafslutning skal du bygge underskærmen CUSTSCR, og for en menuafslutning skal du udfylde funktionskoden +CUS i GUI-statussen.
  6. Aktivér projektet: Aktivér projektet i CMOD, så exit kaldes under kørsel. Uden aktivering ignoreres koden.

💡 Tip: Inkluderingen af ​​en funktionsmodul-exit starter med ZX, så den transporteres med projektet. Placer aldrig den brugerdefinerede logik direkte i SAP funktionsmodulet, fordi det ville være en ændring, ikke en forbedring.

Hvad er en brugerudgang?

Brugerudgang tjener samme formål som kundeudgange, men de er kun tilgængelige for SD modul. Afslutningen implementeres som et kald til et funktionsmodul. Koden er skrevet af udvikleren.

Velkendt User Exit i SD er MV45AFZZ

  • USEREXIT_FIELD_MODIFICATION – For at ændre skærmattributter
  • USEREXIT_SAVE_DOCUMENT – For at udføre handlinger, når brugeren trykker på Gem
  • USEREXIT_SAVE_DOCUMENT_PREPARE
  • USEREXIT_MOVE_FIELD_TO_VBAK – Når brugerhovedændringer flyttes til overskriftsarbejdsområde.
  • USEREXIT_MOVE_FIELD_TO_VBAP – Når brugerelementændringer flyttes til SAP emne arbejdsområde

En brugerexit er teknisk set en subrutine (en FORMULAR) inde i en SAP include, så den redigeres direkte og kræver en adgangsnøgle. Dette er den primære praktiske forskel fra en kundeexit, som er opsummeret i næste afsnit.

Brugerudgang vs. kundeudgang

Begge teknikker tilføjer brugerdefineret adfærd til standard SAP, men de adskiller sig i omfang, teknologi og hvor opgraderingssikre de er. Tabellen nedenfor sammenligner dem.

Kriterier Brugerafslutning Kundeudgang
tilgængelighed Kun SD-modul På tværs af det hele SAP moduler
Teknik Subrutine (FORM) i en SAP inkluderer såsom MV45AFZZ Funktionsmodul, skærm eller menuafslutning administreret i SMOD og CMOD
Adgangsnøgle Kræver en adgangsnøgle til ændring Ingen adgangsnøgle nødvendig
Upgrade adfærd Skal kontrolleres i opgraderingen med SPAU Upgrade sikker, kaldet fra en reserveret inkludering
Administreret af Redigeret direkte i inkluderingen Aktiveret gennem et CMOD-projekt

Kundeudgange er den sikreste og mest generelle af de to. For forbedringer, som ingen af ​​udgangene kan nå, SAP introducerede senere Business Add-In.

Kundeafgange vs. BAdI

A Virksomheds-tilføjelsesprogram (BAdI) er den objektorienterede efterfølger til customer exit. I stedet for en reserveret include definerer en BAdI en grænseflade, og den brugerdefinerede logik sidder i en klasse, der implementerer den. Dette medfører to fordele, som en customer exit ikke tilbyder.

  • Flere implementeringer: En BAdI til flere anvendelser tillader flere uafhængige implementeringer af den samme forbedring, mens en kundeexit kun tillader én.
  • Objektorientering: En BAdI fungerer med metoder og klasser, så den passer til moderne ABAP Objects-udvikling og er nemmere at filtrere efter land eller forretningsscenarie.

Den praktiske regel er enkel: brug en eksisterende kunde- eller bruger-exit, når forbedringspunktet allerede findes, og brug en BAdI, når et nyt, genanvendeligt forbedringspunkt er påkrævet.

Ofte Stillede Spørgsmål

SMOD viser SAP forbedringer og komponenterne i dem. CMOD grupperer en eller flere forbedringer i et kundeprojekt, tildeler koden og aktiverer den. SMOD er ​​til visning, CMOD er ​​til implementering.

Nej. En kundeudgang er en forbedring, ikke en ændring, så der kræves ingen adgangsnøgle. En brugerudgang redigeres direkte i en SAP inkluderer og kræver derfor en adgangsnøgle til ændring.

Kør transaktionen, åbn System, derefter Status for at læse programnavnet, og søg derefter efter forbedringerne af det pågældende program i SMOD eller SE81. En almindelig genvej er at søge i tabellen MOD.SAP for programmets funktionsgruppe.

AI-assistenter i ABAP-udviklingsværktøjer læser programnavnet og foreslår den relevante forbedring, exit eller BAdI, og forklarer, hvad hver enkelt ændrer. Udvikleren bekræfter stadig valget og skriver logikken i den reserverede include.

AI-rådgivere vurderer, om der allerede findes et forbedringspunkt, og hvor mange implementeringer der er nødvendige, og anbefaler derefter normalt en BAdI eller et forbedringspunkt til nyt arbejde.ping klassiske udgange for punkter, der kun eksisterer som udgange.

Opsummer dette indlæg med: