SAP ABAP - Wyjścia użytkownika
Wyjścia użytkownika są używane podczas wyodrębniania, jeśli standardowe ekstraktory SAP nie zapewniają oczekiwanych danych lub wymaganej funkcjonalności, na przykład w uprawnieniach lub kontroli czasu. Wyjścia użytkowników są powszechnie używane w modułach Sales and Distribution (SD). SAP zapewnia wiele wyjść w obszarach sprzedaży, transportu, wysyłki i fakturowania. Wyjście użytkownika ma na celu wprowadzenie pewnych zmian, gdy standardowy SAP nie jest w stanie spełnić wszystkich wymagań.
Aby uzyskać dostęp do wyjść dostępnych w każdym obszarze sprzedaży, przejdź do IMG, korzystając z tej ścieżki: IMG → Sprzedaż i dystrybucja → Modyfikacje systemu → Wyjścia użytkowników. Dokumentacja każdego wyjścia w obszarach SD jest dokładnie wyjaśniona.
Na przykład, jeśli chcesz znaleźć wyjścia użytkowników w przetwarzaniu dokumentów sprzedaży (umowa, oferta lub zamówienie sprzedaży), postępuj zgodnie ze ścieżką wymienioną powyżej i kontynuuj rozwijanie węzła Wyjścia użytkowników w Sprzedaż → Wyjścia użytkowników. Kliknij dokumentację ikony, aby zobaczyć wszystkie wyjścia użytkowników dostępne w przetwarzaniu dokumentów sprzedaży.
S.No. | Wyjście użytkownika i opis |
---|---|
1 | USEREXIT_FIELD_MODIFICATION Służy do modyfikowania atrybutów ekranu. |
2 | USEREXIT_SAVE_DOCUMENT Pomaga w wykonywaniu operacji, gdy użytkownik kliknie przycisk Zapisz. |
3 | USEREXIT_SAVE_DOCUMENT_PREPARE Bardzo przydatne do sprawdzania pól wejściowych, umieszczania dowolnej wartości w polu lub wyświetlania wyskakującego okienka użytkownikom i potwierdzania dokumentu. |
4 | USEREXIT_MOVE_FIELD_TO_VBAK Używane, gdy zmiany nagłówka użytkownika są przenoszone do obszaru roboczego nagłówka. |
5 | USEREXIT_MOVE_FIELD_TO_VBAP Używane, gdy zmiany pozycji użytkownika są przenoszone do obszaru roboczego pozycji SAP. |
Wyjście użytkownika służy temu samemu celowi co wyjście klienta, ale jest dostępne tylko dla modułu SD. Wyjście jest realizowane jako wywołanie modułu funkcyjnego. Wyjścia użytkownika to modyfikacje standardowych programów SAP.
Przykład
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.
Podczas przetwarzania wprowadź kod transakcji „ME01” i naciśnij przycisk F8 (Wykonaj). Powyższy kod daje następujące dane wyjściowe -