✒️ABAP El evento AT SELECTION-SCREEN y los tipos de mensajes
ABAP El evento AT SELECTION-SCREEN y los tipos de mensajes
Los tipos de mensajes:
Una vez que igresamos todos los parámetros de entrada en la pantalla de selección de nuestro reporte y los ejecutamos, lo que vamos a querer es que dependiendo de los parámetros introducidos se produzcan determinadas acciones.
Con esto nos referimops a que el programa debe ser capaz de validar que los parámetros introducidos por el usuario en la pantalla de selección son correctos y en caso contrario se deberán emitir los mensajes correspondientes de modo que el usuario corrija lo introducido.
En ABAP existen diferentes tipos de mensajes que podemos utilizar. cada uno de ellos está pensado para una situación o cauistica particular. los tipos de mensajes existentes son:
Tipos de mensaje significado del mensaje
S Éxito
I información
E Error
W Warning o advertencia
A Terminación
X Dump o error en tiempo de ajecución
Analizamos cada una de estos tipos de mensajes:
- Mensaje de É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. tiene la particularidad que a la izquierda del texto del mensaje muestra el icono verde con la tilde.
- Mensaje de información: este tipo de mesaje se mostrará en una ventana de diálogo en la pantalla. si el programa se ejecuta de forma online entonses se pausará el procesamiento del programa hasta que usuario interactúe con el programa. luego que se ejecura un mensaje de este tipo el programa contiúa su ejecución normalmente. tiene la particularidad que a la izquierda del texto del mensaje se muestra el icono de información.
- Mensaje de Error: este tipo de mensaje produce la terminación del prosesamiento de la pantalla de selección. los campos de la pantalla de selección especifeca en el evento AT SELECTION-SCREEN permite la entrada de datos en domde el usuario del programa debe introducir un nuevo valor. tiene la particularidad que a la izquierda del texto del mensaje se muestra el icono de color rojo con signo de exclamación.
- Mensaje de Waring o Avertencia: este tipo de mensaje s muestra en la barra de estatus de la pantalla. funciona de manera similar a los mensaje de error con la excepción que el usuario puede saltear este tipo de mesnsajes presionando la tecla enter. tiene la particularidad que a la izquierda de texto del mensaje se muestra el icono de color rojo con el signo de exclamación.
- Mensaje de 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. tiene la particularidad que a la izquierda del texto del mensaje se muestra la imajende estop.
- Mensajes Dump: un dump es un error en tiempo de ejecución que interrumpe el procesamiento del programa. este tipo de mensaje no se utiliza intencionalmente en los programas ABAP
Las claces de mensajes:
Para poder trabajar con mensajes en los programas ABAP necesitamos primeramente crear una clase de mensaje.
Clace de mensajes es un objeto de ABAP que se utiliza para almacenar todos los mensajes relativos a un proyecto o transacción de SAP.
Trasacción SE91: se utiliza para crear, modificación y visualización de las cleses de mesajes en SAP. las cuales nosa permite agrupar los mensaje que utilizaremos en una aplicación.
Vamos a crear una nueva clase de mensaje, para ello igresamos a la trasacción SE91, introducimos el nombre de la clase mensajes, que sera Z_CLASE_TEST y hacemos clic en crear.Luego ecribimos un texto breve para la clase de mesaje y grabamos. hacemos clic en la pestaña Mensaje y vamos a crear nestro primer mensaje que será el número 000.
La clase de Mensajes es un objeto de ABAP separado del programa principal por lo tanto también debe activarse e incluirse dentros de objeto ABAP que sera trasportado 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 pransacción en productivo.
Luego en el código de nuestro programa, vamos a utilizar la sentencia MESSAGE para emitir mensajes.
MESSAGE e001(zclase_MENSAJE) WITH <parámetro1> <parámetro2>.....<parámetroN>.
Donde e es el tipo de mensaje, 001 es el número de mensaje, (ZCLASE_MENSAJE) es la clase de mensaje y <parámetro> son las opciones.
En nuestro programa vamos a declarar el evento AT SELECTION-SCREEN y alli dentro vamos a escribir el código ABAP correspondiente para ejecutar la validación.
AT SELECTION-SCREEN.
IF p_fecha < sy-datum.
*la fecha debe ser mayor o igual a la fecha actual
MESSAGE e000 (z_clase_test).
ENDIF.
Ahora bien veamos otra forma que tenemos para crear mensajes utilizando parámetros en los mensajes ya que dentro de los mensajes podemos mostrae el contenido de variables. Para ello vamos a crear el mesaje 001 cuyo contenido será &&&&.
AT SELECTION-SCREEN.
IF p_fecha < sy-datum.
*la fecha debe ser mayor o igual a la fecha actual
MESSAGE e001 (z_clase_test) WITH ' la fecha debe ser mayor o igual a la fecha actual'.
ENDIF.
Al ejecutar el programa e intruducir en la pantalla de selección una fecha menor a la actual visualizaremos el mensaje de Error en la barra de atatus.
Por ultimo, otra opción que tenemos diponible dentro de un mensaje definido en la clase de mensajes es utilisar parte del texto y parte parámetros. Y en nuestro programa vamos a escribir el mensaje de la siguiente manera utilisando parte del texto y parte d los parámetros del mensaje 002.
AT SELECTION-SCREEN.
IF p_fecha < sy-datum.
*la fecha debe ser mayor o igual a &
MESSAGE e001 (z_clase_test) WITH 'la fecha debe ser mayor o igual a' sy-datum.
ENDIF.
Al ejecutar el programa e intruducir en la pantalla de selección una fecha menor a la actual visualizaremos el mensaje de Error en la barra de atatus.
El evnto AT SELECTION-SCREEN
La funcionalidad del avento AT SELECTION-SCREEN está especialmente pensado para 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.
Supongamos ahora que la pantalla de selección de nuestro programa tiene varios parámetros de entrada, ya sean select-options y para cada uno de ellos se desea validar lo introducido. de modo que cuando se encresa un valor incorrecto para un parámetro determinado para la pantalla entonces el usuario tenga la posibilidad de reingresar ese campo en particular y no todos.
Para cumplir con este objetivo vamos a tener que declarar un evento AT SELECTION-SCREEN ON para cada uno de los parámetros que deseamos validar.
 
 
 
Sobre el autor
Publicación académica de Javier Miguel Angel Barcelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Miguel Angel Barcelo
Profesión: Militar - Argentina - Legajo: DQ34X
✒️Autor de: 26 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Certificación Académica de Javier Angel