如果標準SAP提取器不提供期望的數(shù)據(jù)或所需的功能,例如在授權或時間檢查中,則在提取中使用用戶出口。 用戶出口通常用于銷售和分銷(SD)模塊。 SAP在銷售,運輸,運輸和計費領域提供了許多退出。 用戶出口旨在在標準SAP無法滿足所有要求時進行一些更改。
要能夠訪問每個銷售區(qū)域中可用的退出,請使用此路徑轉(zhuǎn)到IMG:IMG → Sales and Distribution → System Modifications → User Exits。 將詳細解釋SD區(qū)域中每個出口的文檔。
例如,如果要在銷售憑證處理(合同,報價或銷售訂單)中查找用戶退出,請按照上述路徑繼續(xù)展開銷售中的Sales → User Exits。 單擊圖標文檔以查看銷售憑證處理中提供的所有用戶退出。
編號 | 用戶退出和說明 |
---|---|
1 | USEREXIT_FIELD_MODIFICATION 用于修改屏幕屬性。 |
2 | USEREXIT_SAVE_DOCUMENT 有助于在用戶點擊保存時執(zhí)行操作。 |
3 | USEREXIT_SAVE_DOCUMENT_PREPARE 非常有用的是檢查輸入字段,在字段中輸入任何值或向用戶顯示彈出式窗口并確認文檔。 |
4 | USEREXIT_MOVE_FIELD_TO_VBAK 將用戶標題更改移動到標題工作區(qū)時使用。 |
5 | USEREXIT_MOVE_FIELD_TO_VBAP 將用戶項目更改移動到SAP項目工作區(qū)時使用。 |
用戶出口的功能與客戶退出功能相同,但它們僅適用于SD模塊。 退出實現(xiàn)為對函數(shù)模塊的調(diào)用。 用戶退出是對SAP標準程序的修改。
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.
處理時,輸入事務代碼“ME01",然后按F8(執(zhí)行)按鈕。 上面的代碼產(chǎn)生以下輸出:
更多建議: