✒️ABAP / El evento AT SELECTION-SCREEN y los tipos de mensajes Por Yeny Yanes Bautista
ABAP El evento AT SELECTION-SCREEN y los tipos de mensajes

El evento AT SELECTION-SCREEN y los tipos de mensajes
1. Los tipos de mensajes
Una vez que ingresamos todos los parámetros de entrada en la pantalla de selección de nuestro reporte y lo ejecutamos, lo que vamos a querer es que dependiendo de los parámetros introducidos se produzcan determinadas acciones.
En ABAP existen diferentes tipos de mensajes que podemos utilizar. Cada uno de ellos está pensado para una situación o casuítica particular. Los tipos de mensajes existentes son los siguientes:
* S - Éxito:
Este tipo de mensaje se visualiza en la barra de estado o estatus de la pantalla. Luego de su ejecución el procesamiento del programa continúa. Tienen la particularidad que a la izquierda del texto del mensaje se muestra el ícono verde con la tilde.
* I - Información:
Este tipo de mensaje se mostrará en una ventada de diálogo en la pantalla. Luego de que se ejecuta un mensaje de este tipo el programa continúa su ejecución normalmente. Tienen la particularidad que la izquierda del texto del mensaje se muestra el ícono verde con información.
* E - Error:
Este tipo de mensaje produce la terminación del procesamiento de la pantalla de selección. Los campos de la pantalla de selección especificados en el evento AT SELECTION-SCREEN permiten la entrada de datos en donde el usuario del programa debe introducir un nuevo valor. Tienen la particularidad que la izquierda del texto del mensaje se muestra el ícono de color rojo con el signo de exclamación.
* W - Warning o Advertencia:
Este tipo de mensaje se muestra en la barra de estatus de la pantalla. Funciona de manera similar a los mensajes de error con la excepcion que el usuario puede saltear este tipo de mensaje presionando la tecla enter. Tienen la particularidad que la izquierda del texto del mensaje se muestra el ícono de color rojo con el signo de exclamación.
* A - Terminación:
Este tipo de mensaje se mostrará en una ventana de diálogo dentro de la pantalla y produce la terminación del programa. Tienen la particularidad que 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.
2. Las clases de mensajes
Para poder trabajar con mensajes en los programas ABAP necesitamos primeramente crear un clase de mensajes. Es un objeto de ABAP que se utiliza para alamcenar todos los mensajes relativos a un proyecto o transacción de SAP. Las clases de mensajes se crean atraves de la transacción SE91.
SE91: Se utiliza para la creación, modificación y visualización de las clases de mensajes en SAP, las cuales nos permiten agrupar los mensjaes que utilizaremos en una aplicación.
Pasos:
1. Ingresar a transacción SE91
2. Ingresar el nombre de la clase de mensaje. Ejem: Z_CLASE_TEST_XC34C
3. Clic en "Crear"
4. Escribir un texto breve para la clase de mensajes. Ejem: Clase de mensajes de test
5. Clic en "Grabar"
6. Clic en la pestaña de mensajes para emprezar a crearlos
Las clases de mensajes es un objeto ABAP separado del programa principal por lo tanto tambien 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 quiera implementar la nueva transacción en PRD.
Luego en el código de nuestro programa vamos a utilizar la sentencia MESSAGE para emitir mensajes. La sintaxis de la sentencia message es la siguiente:
AT SELECTION-SCREEN
IF p_fecha < sy-datum.
MESSAGE e000(z_clase_test).
ENDIF.
Otra forma que tenemos para crear mensajes utilizando parámetros en los mensajes ya que dentro de los mensajes podemos mostrar el contenido de variables. Para ellos vamos a crear el mensaje 001 cuyo contenido será &&&&:
AT SELECTION-SCREEN
IF p_fecha < sy-datum.
MESSAGE e001(z_clase_test) WITH 'La fecha debe ser mayor o igual a la fecha actual'.
ENDIF.
Por último, otra opción que tenemos disponible dentro de un mensaje definido en la clase de mensajes es utilizar parte texto y parte parámetros. Ejemplo:
AT SELECTION-SCREEN
IF p_fecha < sy-datum.
MESSAGE e002(z_clase_test) WITH 'La fecha debe ser mayor o igual a '. sy-datum.
ENDIF.
3. El evento AT SELECTION-SCREEN
Tal como vimos en los ejemplos anteriores, para validar los datos introducidos en los parámetros, ya sea parameters o select-options vamos a utilizar el evento AT SELECTION-SCREEN.
La funcionalidad del evento está especialmente pensada para la validación de los parámetros de la pantalla de selección, si dentro del evento AT SELECTION-SCREEN 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.
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 '012345678'. MESSAGE e000(ztest_mensajes) WITH 'El nombre no puede contener números'. ENDIF.
 
 
 
Sobre el autor
Publicación académica de Yeny Gisela Yanes Bautista, en su ámbito de estudios para el Curso SAP ABAP.
Yeny Gisela Yanes Bautista
Profesión: Ingeniera en Sistemas - Honduras - Legajo: XC34C
✒️Autor de: 46 Publicaciones Académicas
🎓Egresado de los módulos:
Certificación Académica de Yeny Yanes






Disponibilidad Laboral: FullTime


















