✒️ABAP El evento AT SELECTION-SCREEN y los tipos de mensajes
ABAP El evento AT SELECTION-SCREEN y los tipos de mensajes
Tipos de mensajes:
- S: Éxito( Se visualiza en la barra de estado o status de la pantalla. Luego de su ejecución el procesamiento del programa continua. Tienen la particularidad que a la izquierda del texto del mensaje se muestra el icono verde con la tilde)
- I: Información ( Se mostrará en una ventana de diálogo en la pantalla. Si el programa se ejecuta de forma online entonces se pausará el procesamiento del programa hasta que el usuario interactúe con el programa. Luego de que se ejecuta un mensaje de este tipo el programa continúa su ejecución normalmente. Tienen la particularidad que a la izquierda del texto del mensaje se muestra el icono de información)
- E: Error (Produce la terminacion del procesamiento de la pantalla de seleccion. Los campos de la pantalla de seleccion especificados en el evento AT SELECTION-SCREEN permiten la entrada de datos donde el usuario del programa debe introducir un nuevo valor. Tienen la particularidad que a la izquierda del texto del mensaje se muestra el icono de color rojo con el signo de exclamación)
- W: Warning o advertencia ( Se muestra en la barra de status de la pantalla. Funciona de manera similar a los mensajes de error con la excepcion que el usuario puede saltear este tipo de mensajes presionando la tecla enter. Tienen la particularidad que a la izquierda del texto del mensaje se muestra el icono de color rojo con el signo de exclamación)
- A: Terminación ( Se mostrará en una ventana de diálogo dentro de la pantalla y produce la terminación del programa. Tiene la particularidad que a la izquierda del texto del mensaje se muestra la imagen de stop. )
- X: Dump o error en tiempo de ejecución: (Un dump es un error en tiempo de ejecución que interrumpe el procesamiento del programa en el momento en el que ocurre. Este tipo de mensajes no se utiliza intencionalmente en los programas ABAP sino que ocurre cuando se produce un error que no se contempló en la lógica del programa. Ejemplo, es el de la división por cero, es decir si en algún lugar de la lógica de nuestro programa realizamos un cálculo matemático de división por cero entonces se produce un dump.)
Las clases de mensajes
Es un objeto de ABAP que se utiliza para almacenar todos los mensajes relativos a un proyecto o transacción de SAP. Se crean a través de la transacción estándar SE91. Para crear una nueva clase de mensaje ingresamos la transacción se91, ponemos el nombre de la clase de mensaje, ejemplo Z_CLASE_TEST y hacemos clic en Crear. Luego escribimos un texto breve para la clase de mensajes y grabamos. Hacemos clic en la pestaña mensajes y vamos a crear nuestro primer mensajes que será el numero 000. Es un objeto ABAP separado del programa principal por lo que debe activarse e incluirse dentro de los objetos ABAP que serán transportados al ambiente de testing, cuando la nueva transacción se desee probar en este ambiente o al ambiente de producción, cuando se quiere implementar la nueva transaccion en productivo. Luego en el código de nuestro programa, usamos la sentencia MESSAGE para emitir mensajes. La sintaxis es la siguiente: MESSAGE e001(ZCLASE_MENSAJE)WITH<parametro1><parametro2>...<parametroN>.
En el programa se declara el evento AT SELECTION-SCREEN y ahi se escribe el codigo para ejecutar la validación. Por ultimo ejecutamos nuestro reporte.
Evento AT SELECTION-SCREEN
La funcionalidad del evento está especialmente pensada para la validación de los parametros de la pantalla de selección, cuestión que no sucede con otros eventos de un programa ABAP. Si dentro del evento se emite un mensaje de error entonces el procesamiento del programa no se cancela y el programa se queda esperando a que el usuario vuelva a introducir un valor para el parámetro de la pantalla de selección. Vale la pena mencionar que que todo esto únicamente tienen sentido para los programa ABAP que se ejecutan en forma online, es decir donde hay interacción con el usuario.
Si la pantalla de seleccion tiene varios parametros de entrada, y que para cada uno de ellos se desea validar lo introducido. Vamos a tener que declarar un evento AT SELECTION-SCREEN ON para cada uno de los parámetros que deseamos validar de la siguiente forma, Ejemplo:
PARAMETER: p_fecha TYPE sy-datum,
p_nombre(10) TYPE c.
AT SELECTION-SCREEN ON p_fecha.
IF NOT p_fecha IS INITIAL AND p_fecha LT sy-datum
MESSAGE e000(ztest_mensajes) WITH 'La fecha introducida es menor a la del día'.
ENDIF.
AT SELECTION-SCREEN ON p_nombre.
IF NOT p_nombre IS INITIAL AND p_nombre CA '0123456789'.
MESSAGE e000(ztest_mensajes) WITH 'El nombre no puede contener números'.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de Samuel Alejandro Ruiz Escalona, en su ámbito de estudios para la Carrera Consultor ABAP.
Samuel Alejandro Ruiz Escalona
Profesión: Estudiante - Guatemala - Legajo: WH30S
✒️Autor de: 17 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Certificación Académica de Samuel Ruiz