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: