SAP ABAP - Uscite utente

Le uscite utente vengono utilizzate in un'estrazione se gli estrattori SAP standard non forniscono i dati previsti o la funzionalità richiesta, ad esempio nelle autorizzazioni o nei controlli orari. Le uscite utente sono comunemente utilizzate nei moduli di vendita e distribuzione (SD). Ci sono molte uscite fornite da SAP nelle aree di vendita, trasporto, spedizione e fatturazione. Un'uscita utente è progettata per apportare alcune modifiche quando SAP standard non è in grado di soddisfare tutti i requisiti.

Per poter accedere a quali uscite sono disponibili in ciascuna area di vendita, andare su IMG utilizzando questo percorso: IMG → Vendite e distribuzione → Modifiche di sistema → Uscite utente. La documentazione per ogni uscita nelle aree di SD è spiegata accuratamente.

Ad esempio, se si desidera trovare le uscite utente in Elaborazione documenti di vendita (contratto, offerta o ordine di vendita), seguire il percorso sopra menzionato e continuare ad espandere il nodo Uscite utente in Vendite → Uscite utente. Fare clic sull'icona della documentazione per vedere tutte le uscite utente disponibili in Elaborazione documenti di vendita.

S.No. Uscita utente e descrizione
1

USEREXIT_FIELD_MODIFICATION

Utilizzato per modificare gli attributi dello schermo.

2

USEREXIT_SAVE_DOCUMENT

Aiuta a eseguire operazioni quando l'utente preme Salva.

3

USEREXIT_SAVE_DOCUMENT_PREPARE

Molto utile per controllare i campi di input, inserire qualsiasi valore nel campo o mostrare un popup agli utenti e per confermare il documento.

4

USEREXIT_MOVE_FIELD_TO_VBAK

Utilizzato quando le modifiche all'intestazione dell'utente vengono spostate nell'area di lavoro dell'intestazione.

5

USEREXIT_MOVE_FIELD_TO_VBAP

Utilizzato quando le modifiche agli articoli utente vengono spostate nell'area di lavoro degli articoli SAP.

Le uscite utente hanno lo stesso scopo delle uscite cliente ma sono disponibili solo per il modulo SD. L'uscita è implementata come una chiamata a un modulo funzione. Le uscite utente sono modifiche ai programmi standard SAP.

Esempio

REPORT ZUSEREXIT1. 
TABLES:   
   TSTC, TSTCT,
   TADIR, TRDIR, TFDIR, ENLFDIR,
   MODSAPT, MODACT. 
	
DATA:   
   JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE,
   field1(30),
   v_devclass LIKE TADIR-devclass. 
	
PARAMETERS:
   P_TCODE LIKE TSTC-tcode OBLIGATORY. 
	
SELECT SINGLE *
   FROM TSTC
   WHERE tcode EQ P_TCODE. 
	
IF SY-SUBRC EQ 0.
   SELECT SINGLE *
   FROM TADIR
	
   WHERE pgmid = 'R3TR' AND 
         object = 'PROG' AND
         obj_name = TSTC-pgmna.
		
   MOVE TADIR-devclass TO v_devclass.
	
   IF SY-SUBRC NE 0.
   SELECT SINGLE * 
      FROM TRDIR
      WHERE name = TSTC-pgmna.
		
   IF TRDIR-subc EQ 'F'.
      SELECT SINGLE *
         FROM TFDIR
         WHERE pname = TSTC-pgmna.
			
      SELECT SINGLE *
         FROM ENLFDIR 
         WHERE funcname = TFDIR-funcname.
			
      SELECT SINGLE * 
         FROM TADIR
         WHERE pgmid = 'R3TR' AND
               object = 'FUGR' AND 
               obj_name EQ ENLFDIR-area.
         MOVE TADIR-devclass TO v_devclass.
      ENDIF.
   ENDIF.
	
   SELECT *
      FROM TADIR
      INTO TABLE JTAB
		
      WHERE pgmid = 'R3TR' AND
            object = 'SMOD' AND
            devclass = v_devclass.
			
   SELECT SINGLE *
      FROM TSTCT
      WHERE sprsl EQ SY-LANGU AND
            tcode EQ P_TCODE.
			
   FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
   WRITE:/(19) 'Transaction Code - ', 
      20(20) P_TCODE,
      45(50) TSTCT-ttext.
   SKIP.
	
   IF NOT JTAB[] IS INITIAL.
      WRITE:/(95) SY-ULINE.
      FORMAT COLOR COL_HEADING INTENSIFIED ON.
		
      WRITE:/1 SY-VLINE, 
            2 'Exit Name',
            21 SY-VLINE , 
            22 'Description',
            95 SY-VLINE.
			
      WRITE:/(95) SY-ULINE.
      LOOP AT JTAB.
         SELECT SINGLE * FROM MODSAPT
         WHERE sprsl = SY-LANGU AND
               name = JTAB-obj_name.
				
         FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
         WRITE:/1 SY-VLINE,
               2 JTAB-obj_name HOTSPOT ON,
               21 SY-VLINE ,
               22 MODSAPT-modtext,
               95 SY-VLINE.
      ENDLOOP.
		
      WRITE:/(95) SY-ULINE.
      DESCRIBE TABLE JTAB.
      SKIP.
      FORMAT COLOR COL_TOTAL INTENSIFIED ON.
      WRITE:/ 'No of Exits:' , SY-TFILL.
		
   ELSE.
      FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
      WRITE:/(95) 'User Exit doesn’t exist'.
   ENDIF. 
ELSE.

   FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
   WRITE:/(95) 'Transaction Code Does Not Exist'. 
ENDIF.
 
AT LINE-SELECTION.
   GET CURSOR FIELD field1.
   CHECK field1(4) EQ 'JTAB'.
   SET PARAMETER ID 'MON' FIELD sy-lisel+1(10).
   CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.

Durante l'elaborazione, immettere il codice di transazione "ME01" e premere il pulsante F8 (Execute). Il codice precedente produce il seguente output: