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: