Пользовательские выходы используются в извлечении, если стандартные экстракторы SAP не предоставляют ожидаемые данные или требуемые функциональные возможности, например, в полномочиях или проверках времени. Пользовательские выходы обычно используются в модулях продаж и распространения (SD). SAP предоставляет множество выходов в области продаж, транспортировки, доставки и выставления счетов. Выход пользователя предназначен для внесения некоторых изменений, когда стандартная система SAP не способна удовлетворить все требования.
Чтобы получить доступ к тем выходам, которые доступны в каждой области продаж, перейдите к IMG, используя этот путь: IMG → Сбыт → Модификации системы → Выход пользователя. Документация для каждого выхода в области SD подробно объясняется.
Например, если вы хотите найти выходы пользователя в Обработка торгового документа (контракт, предложение или заказ на продажу), следуйте указанному выше пути и продолжайте расширять узел Выход пользователя в Продажи → Выход пользователя. Нажмите на значок документации, чтобы увидеть все пользовательские выходы, доступные в Обработка торгового документа.
S.No. | Выход пользователя и описание |
---|---|
1 |
USEREXIT_FIELD_MODIFICATION Используется для изменения атрибутов экрана. |
2 |
Userexit_save_document Помогает в выполнении операций, когда пользователь нажимает Сохранить. |
3 |
USEREXIT_SAVE_DOCUMENT_PREPARE Очень полезно проверить поля ввода, ввести любое значение в поле или показать всплывающее окно пользователям и подтвердить документ. |
4 |
USEREXIT_MOVE_FIELD_TO_VBAK Используется, когда изменения пользовательского заголовка перемещаются в рабочую область заголовка. |
5 |
USEREXIT_MOVE_FIELD_TO_VBAP Используется, когда изменения пользовательского элемента перемещаются в рабочую область элемента SAP. |
USEREXIT_FIELD_MODIFICATION
Используется для изменения атрибутов экрана.
Userexit_save_document
Помогает в выполнении операций, когда пользователь нажимает Сохранить.
USEREXIT_SAVE_DOCUMENT_PREPARE
Очень полезно проверить поля ввода, ввести любое значение в поле или показать всплывающее окно пользователям и подтвердить документ.
USEREXIT_MOVE_FIELD_TO_VBAK
Используется, когда изменения пользовательского заголовка перемещаются в рабочую область заголовка.
USEREXIT_MOVE_FIELD_TO_VBAP
Используется, когда изменения пользовательского элемента перемещаются в рабочую область элемента SAP.
Пользовательский выход служит для тех же целей, что и клиентские, но они доступны только для модуля SD. Выход реализован как вызов функционального модуля. Пользовательские выходы — это модификации стандартных программ 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 (Выполнить). Приведенный выше код производит следующий вывод —