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.

  • 🪝 Definizione di base: Un'uscita del cliente è un gancio posizionato da SAP all'interno di un programma, una schermata o un menu standard a cui il cliente aggiunge una logica personalizzata.
  • 🧩 Tre tipi di uscita: Le uscite dei moduli funzione aggiungono codice, le uscite delle schermate aggiungono campi tramite una sottoschermata e le uscite dei menu aggiungono elementi a un menu a tendina.
  • 🔍 Individuazione delle uscite: La transazione SMOD elenca le exit disponibili, mentre SE81 consente di esplorarle per area applicativa.
  • ️ Implementazione In CMOD si crea un progetto, gli si assegna l'exit, si scrive il codice e si attiva il progetto.
  • 📦 Uscita utente: Un'uscita utente svolge la stessa funzione, ma esiste solo nel modulo SD, di cui il modello MV45AFZZ è l'esempio più noto.
  • ️ Scelta della tecnica: Le user exit sono subroutine SD, le customer exit sono sicure tra moduli e in caso di aggiornamenti, e una BAdI è il successore orientato agli oggetti di entrambe.

Uscita utente ed uscita cliente in SAP

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:

  1. Modulo funzione esce
  2. Lo schermo esce
  3. 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.

Esempi di uscite del cliente

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

Esempi di uscite del cliente

DOPO

Esempi di uscite del cliente

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

Esempi di uscite del cliente

DOPO

Esempi di uscite del cliente

Individuazione delle uscite dei clienti

In transazione SMOD e guarda i dettagli-

Individuazione delle uscite dei clienti

O in transazione SE81 è possibile utilizzare l'area di applicazione appropriata

Individuazione delle uscite dei clienti

Creare un'uscita cliente

Per creare un'uscita cliente devi prima creare un progetto in transazione CMOD

Creare un'uscita cliente

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.

  1. Trova il miglioramento: Individua il nome del miglioramento in SMOD, ad esempio il componente EXIT_SAPMF02K_001 per i dati anagrafici del fornitore.
  2. Crea il progetto: In CMOD, inserisci un nome di progetto che inizi con Z o Y e scegli Crea.
  3. Assegna il potenziamento: Nella schermata Assegnazioni miglioramenti, aggiungi il nome del miglioramento che contiene l'exit.
  4. Scrivi il codice: Apri l'exit del modulo funzione e inserisci il codice al suo interno, che inizia con ZX.
  5. 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.
  6. 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.

DOMANDE FREQUENTI

SMOD visualizza il SAP miglioramenti e i componenti al loro interno. CMOD raggruppa uno o più miglioramenti in un progetto cliente, assegna il codice e lo attiva. SMOD serve per la visualizzazione, CMOD per l'implementazione.

No. Un customer exit è un miglioramento, non una modifica, quindi non è necessaria alcuna chiave di accesso. Un user exit viene modificato direttamente in un SAP include e pertanto richiede una chiave di accesso per la modifica.

Eseguire la transazione, aprire Sistema, quindi Stato per leggere il nome del programma, quindi cercare i miglioramenti di quel programma in SMOD o SE81. Una scorciatoia comune è cercare nella tabella MOD.SAP per il gruppo di funzioni del programma.

Gli assistenti basati sull'IA negli strumenti di sviluppo ABAP leggono il nome del programma e suggeriscono l'enhancement, l'exit o il BAdI pertinenti, spiegando cosa modifica ciascuno di essi. Lo sviluppatore deve comunque confermare la scelta e scrivere la logica all'interno dell'include riservato.

I consulenti AI valutano se esiste già un punto di miglioramento e quante implementazioni sono necessarie, quindi di solito raccomandano un BAdI o un punto di miglioramento per il nuovo lavoro, mantenerloping Uscite classiche per punti che esistono solo come uscite.

Riassumi questo post con: