✒️ABAP El evento AT SELECTION-SCREEN y los tipos de mensajes
ABAP El evento AT SELECTION-SCREEN y los tipos de mensajes
1 Tipos de mensajes.
Mensajes que pueden ser ventanas emergentes y aparecer en la parte inferior del GUI que informen al usuario sobre los datos ingresados, según el caso que aplique, pueden ser mensajes de:
* (Tipo S) Exito: En la parte inferior izquierda.
* (Tipo I) Información: Ventana emergente.
* (Tipo E) Error : En la parte inferior izquierda al finalizar la pantalla de selección.
* (Tipo W) Warning o advertencia: En la parte inferior izquierda, barra de status.
* (Tipo A) Terminación: Ventana emergente.
* (Tipo X) Dump o error en tiempo de ejecución: Interrumpe el procesamiento del programa, cuando hay un error que no se contempla en la lógica del programa.
2 Clases de mensajes.
Objetos que almacenan todos los mensajes relativos a un proyecto o transacción. Estas clases de mensajes se crean a través de la transacción SE91. Estos mensajes tienen un código, se crean aparte del programa principal, deben activarse e incluirse dentro de los objetos. Posteriormente en el código debemos utilizar la sentencia MESSAGE para emitir el mensaje así: Palabra reservaada, tipo de mensaje, código y (clase)
IF p_fecha < sy-datum.
MESSAGE e001(ZCLASE_MENSAJE).
ENDIF
Para emitir mensajes con contenido de variables, creamos mensajes cuyo contenido sea &
Notas: Cada & puede albergar hasta 50 caracteres, los mensajes pueden tener máximo 4 variables, para usar & como texto se escribe &&. Cada clase de mensaje puede almacenar 999 mensaje.
IF p_fecha < sy-datum.
MESSAGE e001(zclase_test) WITH 'La fecha debe ser mayor o igual a la fecha actual'.
ENDIF
Podemos emitir mensajes definidos en una clase y una parte con parámetros así:
Se crea el mensaje con contenido La fecha debe ser mayor o igual a la fecha & y
IF p_fecha < sy-datum.
MESSAGE e001(zclase_test) WITH 'La fecha debe ser mayor o igual a la fecha a ' sy-datum.
ENDIF
3 Evento AT SELECTION-SCREEN.
Para validar los datos introducidos en los parámetros vamos a utilizar el evento AT SELECTION-SCREEN.
Si dentro del evento AT SELECTION-SCREEN se emite un mensaje de error, el programa se queda esperando a que el usuario vuelva a introducir un valor para el parámetro de la pantalla de selección.
Para que frente a un error el programa no se reinicie en la solicitud de todos los parámetros, será necesario declarar un evento AT SELECTION-SCREEN ON para cada uno de los parámetros que deseemos validar así:
PARAMETERS: p_fecha LIKE sy-datum,
p_nombre(10) TYPE c.
AT SELECTION-SCREEN ON p_fecha.
IF NOT p_fecha IS INITIAL AND p_fecha LIT sy-datum.
MESSAGE e001(zclase_test) 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 e001(zclase_test) WITH 'El nombre no puede contener números'.
ENDIF
Si un error se produce en un evento START OF SELECCION se producirá un dump que no permitirá seguir interactuando con e programa. Para evitarlo se utiliza la clausula displaylike, se escribe al final de los mensajes seguida del tipo de mensaje, que ejecutara un mensaje de estatus tipo error
DISPLAYLIKEe
CA: Contain any o Contiene algún
AT SELECTION-SCREEN PUTPUT se usa para habilitar o deshabilitar parámetros de la pantalla de selección
 
 
 
Sobre el autor
Publicación académica de Linda Carolina Zambrano León, en su ámbito de estudios para la Carrera Consultor ABAP.
Linda Carolina Zambrano León
Profesión: Agente - Peru - Legajo: XR55P
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Linda Zambrano