SAP ABAP: salidas de usuario
Las salidas de usuario se utilizan en una extracción si los extractores de SAP estándar no proporcionan los datos esperados o la funcionalidad requerida, por ejemplo, en autorizaciones o verificaciones de tiempo. Las salidas de usuario se utilizan comúnmente en los módulos de Ventas y Distribución (SD). SAP proporciona muchas salidas en las áreas de ventas, transporte, envío y facturación. Una salida de usuario está diseñada para realizar algunos cambios cuando el SAP estándar no es capaz de cumplir con todos los requisitos.
Para poder acceder a las salidas disponibles en cada área de ventas, vaya a IMG utilizando esta ruta: IMG → Ventas y distribución → Modificaciones del sistema → Salidas de usuario. La documentación para cada salida en las áreas de SD se explica detalladamente.
Por ejemplo, si desea encontrar salidas de usuario en Procesamiento de documentos de ventas (contrato, cotización u orden de venta), siga la ruta mencionada anteriormente y continúe expandiendo el nodo Salidas de usuario en Ventas → Salidas de usuario. Haga clic en la documentación del icono para ver todas las salidas de usuario disponibles en Procesamiento de documentos de ventas.
S.No. | Salida de usuario y descripción |
---|---|
1 | USEREXIT_FIELD_MODIFICATION Se utiliza para modificar los atributos de la pantalla. |
2 | USEREXIT_SAVE_DOCUMENT Ayuda a realizar operaciones cuando el usuario presiona Guardar. |
3 | USEREXIT_SAVE_DOCUMENT_PREPARE Muy útil para comprobar campos de entrada, poner cualquier valor en el campo o mostrar una ventana emergente a los usuarios y confirmar el documento. |
4 | USEREXIT_MOVE_FIELD_TO_VBAK Se utiliza cuando los cambios del encabezado del usuario se mueven al área de trabajo del encabezado. |
5 | USEREXIT_MOVE_FIELD_TO_VBAP Se utiliza cuando los cambios de elementos de usuario se mueven al área de trabajo de elementos de SAP. |
Una salida de usuario tiene el mismo propósito que las salidas de cliente, pero solo están disponibles para el módulo SD. La salida se implementa como una llamada a un módulo de funciones. Las salidas de usuario son modificaciones a los programas estándar de SAP.
Ejemplo
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.
Mientras procesa, ingrese el código de transacción 'ME01' y presione el botón F8 (Ejecutar). El código anterior produce la siguiente salida: