Introducción
Los mensajes en ABAP se utilizan para comunicar con los usuarios. Se utilizan para informar al usuario que los datos se han grabado correctamente o que el valor que ha introducido en un campo no es válido y en este caso emitimos mensajes de error.
No solamente son textos, sino que también son acciones de flujo en el contexto del programa ABAP.
En principio, los mensajes son simplemente textos almacenados en la tabla T100, que podemos mantener por la transacción SE91 y navegando con el Workbench. (SABAPDOCU – visualizar clase de mensaje estándar) La estructura de la tabla T100 es:
- Clave de idioma
- Clase de mensaje
- Número de mensaje
- Texto de mensaje (hasta 72 caracteres)
SAP es un sistema multilenguaje que está preparado para conexiones al mismo servidor en distintos idiomas. Permite conexiones en diferentes idiomas, siempre que estén instalados en el servidor. Los dos idiomas que siempre están instalados por defecto son el inglés y el alemán. Es posible desarrollar un programa que interactúa con el usuario mediante mensajes y que estos sean mostrados según el idioma del cliente. Esto no quiere decir que para cada idioma haya que crear un programa. El propio Sistema es capaz de traducir los textos de mensajes dependiendo del idioma de conexión. Si un usuario se conecta al Sistema en el idioma inglés y visualiza la misma clase de mensaje va a ver los mensajes en su idioma de conexión. La clase de mensaje asigna mensajes a una aplicación o a una clase de desarrollo… y los números identifican el mensaje individual. Cuando necesitamos un mensaje o nos envían un mensaje, está identificado por una clave de lenguaje, la clase de mensaje y el número de mensaje.
Tipos de mensajes en ABAP
A – Abend – mensaje de cancelación
E – Error – mensaje de error
I – Information – mensaje de información
S – Success – mensaje de éxito
W – Warning – mensaje de advertencia
X – Error – mensaje de error
Tipo | Visualización | Tratamiento |
A | Ventana de diálogo | Programa finaliza y el control vuelve al último menú |
E | Barra de estado | declaración AT SELECTION-SCREEN están listos para la entrada. El usuario debe introducir un nuevo valor. Entonces, el sistema reinicia el procesamiento pantalla de selección utilizando los nuevos valores. No se puede utilizar mensajes de error con la ayuda ON HELP-REQUEST u ON VALUE-REQUEST. En su lugar, se produce un error de ejecución. |
I | Ventana de diálogo | Programa sigue con el procesamiento después de la sentencia MESSAGE |
S | Barra de estado de la pantalla siguiente | Programa sigue con el procesamiento después de la sentencia MESSAGE |
W | Barra de estado | Al igual que el tipo E, pero el usuario puede confirmar el mensaje pulsando ENTER sin tener que introducir nuevos valores. Entonces, el sistema reanuda el procesamiento de la pantalla de selección directamente después de la sentencia MESSAGE. No se puede utilizar mensajes de error con la ayuda ON HELP- REQUEST u ON VALUE-REQUEST. En su lugar, se produce un error de ejecución. |
X | Ninguno | Dispara un error de ejecución con un dump. |
Emitir mensajes
En el propio programa se puede definir la identidad o las clases de mensajes que se van a utilizar para interactuar con el usuario. Llamamos a un mensaje de la siguiente forma:
MESSAGE [Tipo de mensaje] [Número del mensaje] [Clase del mensaje].
Así llamamos al mensaje 003 del tipo I, de la clase SABAPDOCU.
MESSAGE I003(SABAPDOCU).
También podemos al mensaje 003 de la clase SABAPDOCU, del tipo I de la siguiente forma:
MESSAGE ID 'SABAPDOCU' TYPE 'S' NUMBER '014'.
Podemos substituir los literales por variables.
MESSAGE ..... {WITH ... }
A veces el mensaje (el texto del mensaje) tiene caracteres ampersand que se pueden substituir por parámetros a la hora de formar el mensaje, con la opción WITH podemos implementar estos parámetros.