Differenza tra User Exit e Customer Exit in SAP
⚡ Riepilogo intelligente
Uscite utente ed uscite cliente in SAP ABAP sono hook di estensione che aggiungono funzionalità personalizzate ai programmi standard senza modificarli SAP Codice. Questa pagina spiega i tipi di customer exit, fornisce esempi pratici, illustra le transazioni SMOD e CMOD, gli user exit e le differenze tra le due tecniche.

Che cosa sono le Customer Exit?
Le uscite dei clienti lo sono "ganci" fornito da SAP all'interno di molti programmi, schermate e menu standard sui quali i clienti possono accedere "appendere" Funzionalità personalizzate per soddisfare le esigenze aziendali. Ne parleremo tra un attimo…
Il vantaggio principale è che lo standard SAP L'oggetto non viene mai modificato. Il codice personalizzato si trova in un include riservato o in una sottoscreen che SAP chiamate al momento giusto, in modo che il miglioramento sopravviva a un aggiornamento del sistema invece di essere sovrascritto. Per questo motivo, le uscite appartengono alla famiglia di SAP tecniche di miglioramento insieme al più recente Business Add-In.
Tipi di uscite dei clienti
Esistono tre tipi principali di uscite del cliente:
- Modulo funzione esce
- Lo schermo esce
- Il menu esce
Uscita dal modulo funzioneConsente al cliente di aggiungere codice tramite un modulo funzione in una posizione specifica in un SAP programma applicativo
Syntax: CALL CUSTOMER-FUNCTION '004'
Esci dallo schermo: Consente al cliente di aggiungere campi a una schermata in un SAP Programma tramite una schermata secondaria. La schermata secondaria viene richiamata all'interno della logica di flusso della schermata standard.
Format: CALL CUSTOMER-SUBSCREEN CUSTSCR2
Uscita dal menù: Consente al cliente di aggiungere elementi a un menu a tendina in modo standard SAP programma. Questi elementi possono essere utilizzati per richiamare programmi aggiuntivi o schermate personalizzate.
Format: +CUS ( additional item in GUI status )
Esempi di uscite del cliente
Esempio di uscita dallo schermo:
Nella transazione CAT2 – Inserimento foglio presenze, le risorse umane desiderano includere un riconoscimento interattivo che l'invio consapevole di dati errati costituisce motivo di licenziamento.
Esempio di uscita dal menu:
Nella transazione SE38 – ABAP Editor, il team di sviluppo desidera includere un collegamento al menu alla transazione SE80 – Object Navigator per facilità d'uso.
PRIMA
DOPO
Esempio di uscita da un modulo funzione:
L'azienda desidera che i dati bancari dei fornitori nella creazione del fornitore siano un evento obbligatorio. Quindi deve visualizzare un messaggio di errore che dice "Inserisci i dati bancari"
PRIMA
DOPO
Individuazione delle uscite dei clienti
In transazione SMOD e guarda i dettagli-
O in transazione SE81 è possibile utilizzare l'area di applicazione appropriata
Creare un'uscita cliente
Per creare un'uscita cliente devi prima creare un progetto in transazione CMOD
Later assegni l'uscita cliente al tuo progetto.
L'intera procedura, dal trovare l'uscita all'attivazione del codice, è breve e si articola sempre in sei passaggi.
- Trova il miglioramento: Individua il nome del miglioramento in SMOD, ad esempio il componente EXIT_SAPMF02K_001 per i dati anagrafici del fornitore.
- Crea il progetto: In CMOD, inserisci un nome di progetto che inizi con Z o Y e scegli Crea.
- Assegna il potenziamento: Nella schermata Assegnazioni miglioramenti, aggiungi il nome del miglioramento che contiene l'exit.
- Scrivi il codice: Apri l'exit del modulo funzione e inserisci il codice al suo interno, che inizia con ZX.
- Gestire le parti dello schermo e del menu: Per uscire da una schermata, crea la sottoschermata CUSTSCR, mentre per uscire da un menu, inserisci il codice funzione +CUS nello stato dell'interfaccia grafica.
- Attiva il progetto: Attiva il progetto in CMOD in modo che l'uscita venga chiamata a runtime. Senza attivazione, il codice viene ignorato.
Suggerimento: L'inclusione di un'uscita del modulo funzione inizia con ZX, quindi viene trasportata con il progetto. Non inserire mai la logica personalizzata direttamente nel SAP modulo funzione, perché si tratterebbe di una modifica, non di un miglioramento.
Che cos'è una User Exit?
Le uscite utente hanno lo stesso scopo delle uscite cliente ma sono disponibili solo per SD modulo. L'uscita viene implementata come una chiamata ad un Modulo Funzionale. Il codice è scritto dallo sviluppatore.
Beh, sappi che User Exit in SD lo è MV45AFZZ
- USEREXIT_FIELD_MODIFICATION – Per modificare gli attributi dello schermo
- USEREXIT_SAVE_DOCUMENT – Per eseguire operazioni quando l'utente preme Salva
- USEREXIT_SAVE_DOCUMENT_PREPARE
- USEREXIT_MOVE_FIELD_TO_VBAK – Quando le modifiche dell'intestazione utente vengono spostate nell'area di lavoro dell'intestazione.
- USEREXIT_MOVE_FIELD_TO_VBAP – Quando le modifiche agli elementi utente vengono spostate SAP area di lavoro dell'articolo
Un'uscita utente è tecnicamente una subroutine (un FORM) all'interno di un SAP include, quindi viene modificato direttamente e richiede una chiave di accesso. Questa è la principale differenza pratica rispetto a una customer exit, riassunta nella sezione successiva.
Uscita utente vs. uscita cliente
Entrambe le tecniche aggiungono un comportamento personalizzato allo standard SAPTuttavia, differiscono per portata, tecnologia e sicurezza di aggiornamento. La tabella seguente le confronta.
| Criteri | Uscita utente | Uscita del cliente |
|---|---|---|
| Disponibilità | Solo modulo SD | In tutto SAP moduli |
| Tecnica | Sottoprogramma (FORM) in un SAP includono modelli come l'MV45AFZZ | Modulo funzione, schermata o uscita di menu gestiti in SMOD e CMOD |
| Chiave di accesso | Richiede una chiave di accesso per la modifica | Non è necessaria alcuna chiave di accesso. |
| Upgrade comportamento | Deve essere verificato nell'aggiornamento con SPAU | Upgrade sicuro, chiamato da un'area riservata include |
| Gestito da | Modificato direttamente nell'include | Attivato tramite un progetto CMOD |
Le uscite clienti sono le più sicure e generali delle due. Per i miglioramenti che nessuna delle due uscite può raggiungere, SAP Successivamente è stato introdotto il Business Add-In.
Uscite dei clienti vs BAdI
A Business Add-In (BAdI) È il successore orientato agli oggetti del customer exit. Invece di un include riservato, un BAdI definisce un'interfaccia e la logica personalizzata risiede in una classe che la implementa. Questo offre due vantaggi che un customer exit non offre.
- Implementazioni multiple: Un BAdI multiuso consente diverse implementazioni indipendenti dello stesso miglioramento, mentre un customer exit ne consente solo una.
- Orientamento dell'oggetto: Un BAdI funziona con metodi e classi, quindi si adatta allo sviluppo moderno con ABAP Objects ed è più facile da filtrare per paese o scenario aziendale.
La regola pratica è semplice: utilizzare un'uscita cliente o un'uscita utente esistente quando il punto di estensione esiste già, e utilizzare un BAdI quando è necessario un nuovo punto di estensione riutilizzabile.








