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: