SAP ABAP: sintaxis básica
Declaraciones
El programa fuente ABAP consta de comentarios y declaraciones ABAP. Cada declaración en ABAP comienza con una palabra clave y termina con un punto, y ABAP no distingue entre mayúsculas y minúsculas.
La primera línea sin comentarios de un programa comienza con la palabra INFORME. El Informe siempre será la primera línea de cualquier programa ejecutable creado. La declaración va seguida del nombre del programa que se creó anteriormente. Luego, la línea se termina con un punto final.
La sintaxis es -
REPORT [Program_Name].
[Statements…].
Esto permite que la declaración ocupe tantas líneas en el editor como necesite. Por ejemplo, el INFORME puede verse así:
REPORT Z_Test123_01.
Las declaraciones consisten en un comando y cualquier variable y opción, terminando con un punto. Siempre que el punto aparezca al final de la declaración, no surgirán problemas. Es este período el que marca el final de la declaración.
Escribamos el código.
En la línea debajo de la declaración REPORT, simplemente escriba esta declaración: Escriba 'Tutorial ABAP'.
REPORT Z_Test123_01.
Write 'This is ABAP Tutorial'.
Four things to consider while writing statements -
La declaración de escritura escribe lo que esté entre comillas en la ventana de salida.
El editor ABAP convierte todo el texto a mayúsculas, excepto las cadenas de texto, que están rodeadas por comillas simples.
A diferencia de algunos lenguajes de programación más antiguos, a ABAP no le importa dónde comienza una declaración en una línea. Puede aprovechar esto y mejorar la legibilidad de su programa usando sangría para indicar bloques de código.
ABAP no tiene restricciones en el diseño de declaraciones. Es decir, se pueden colocar varias declaraciones en una sola línea, o una sola declaración puede extenderse a lo largo de varias líneas.
Notación de dos puntos
Las declaraciones consecutivas se pueden encadenar juntas si el comienzo de cada declaración es idéntico. Esto se hace con el operador de dos puntos (:) y comas, que se utilizan para terminar las declaraciones individuales, de la misma manera que los puntos terminan las declaraciones normales.
A continuación se muestra un ejemplo de un programa que podría ahorrar algunas teclas:
WRITE 'Hello'.
WRITE 'ABAP'.
WRITE 'World'.
Usando la notación de dos puntos, podría reescribirse de esta manera:
WRITE: 'Hello',
'ABAP',
'World'.
Como cualquier otra declaración ABAP, el diseño no importa. Esta es una afirmación igualmente correcta:
WRITE: 'Hello', 'ABAP', 'World'.
Comentarios
Los comentarios en línea se pueden declarar en cualquier lugar de un programa mediante uno de los dos métodos:
Los comentarios de línea completa se indican colocando un asterisco (*) en la primera posición de la línea, en cuyo caso el sistema considera que la línea completa es un comentario. Los comentarios no necesitan terminar con un punto porque no pueden extenderse a más de una línea -
* This is the comment line
Los comentarios de línea parcial se indican ingresando una comilla doble (") después de una declaración. El sistema considera que todo el texto que sigue a la comilla doble es un comentario. No es necesario terminar los comentarios de línea parcial con un punto porque es posible que no se extiendan a más de una línea -
WRITE 'Hello'. "Here is the partial comment
Note - El editor ABAP no escribe en mayúsculas el código comentado.
Supresión de espacios en blanco
El comando NO-ZERO sigue a la instrucción DATA. Suprime todos los ceros iniciales de un campo numérico que contiene espacios en blanco. El resultado suele ser más fácil de leer para los usuarios.
Ejemplo
REPORT Z_Test123_01.
DATA: W_NUR(10) TYPE N.
MOVE 50 TO W_NUR.
WRITE W_NUR NO-ZERO.
El código anterior produce la siguiente salida:
50
Note - Sin comando NO-ZERO, la salida es: 0000000050
Líneas en blanco
El comando SKIP ayuda a insertar líneas en blanco en la página.
Ejemplo
El comando de mensaje es el siguiente:
WRITE 'This is the 1st line'.
SKIP.
WRITE 'This is the 2nd line'.
El comando de mensaje anterior produce la siguiente salida:
This is the 1st line
This is the 2nd line
Podemos usar el comando SKIP para insertar varias líneas en blanco.
SKIP number_of_lines.
La salida serían varias líneas en blanco definidas por el número de líneas. El comando SKIP también puede colocar el cursor en una línea deseada en la página.
SKIP TO LINE line_number.
Este comando se utiliza para mover dinámicamente el cursor hacia arriba y hacia abajo en la página. Por lo general, se produce una instrucción WRITE después de este comando para poner la salida en la línea deseada.
Insertar líneas
El comando ULINE inserta automáticamente una línea horizontal en la salida. También es posible controlar la posición y la longitud de la línea. La sintaxis es bastante simple:
ULINE.
Ejemplo
El comando de mensaje es el siguiente:
WRITE 'This is Underlined'.
ULINE.
El código anterior produce la siguiente salida:
This is Underlined (and a horizontal line below this).
Mensajes
El comando MESSAGE muestra mensajes definidos por un ID de mensaje especificado en la instrucción REPORT al comienzo del programa. La ID del mensaje es un código de 2 caracteres que define a qué conjunto de 1000 mensajes accederá el programa cuando se utilice el comando MESSAGE.
Los mensajes están numerados del 000 al 999. Asociado con cada número hay un mensaje de texto de hasta un máximo de 80 caracteres. Cuando se llama al número de mensaje, se muestra el texto correspondiente.
A continuación se muestran los caracteres para usar con el comando Mensaje:
Mensaje | Tipo | Consecuencias |
---|---|---|
mi | Error | Aparece el mensaje y la aplicación se detiene en su punto actual. Si el programa se está ejecutando en segundo plano, el trabajo se cancela y el mensaje se registra en el registro de trabajos. |
W | Advertencia | Aparece el mensaje y el usuario debe presionar Enter para que la aplicación continúe. En el modo de fondo, el mensaje se registra en el registro de trabajos. |
yo | Información | Se abre una ventana emergente con el texto del mensaje y el usuario debe presionar Enter para continuar. En el modo de fondo, el mensaje se registra en el registro de trabajos. |
UN | Abend | Esta clase de mensaje cancela la transacción que el usuario está utilizando actualmente. |
S | Éxito | Esto proporciona un mensaje informativo en la parte inferior de la pantalla. La información que se muestra es de naturaleza positiva y solo está destinada a los comentarios de los usuarios. El mensaje no obstaculiza el programa de ninguna manera. |
X | Abortar | Este mensaje aborta el programa y genera un volcado breve de ABAP. |
Los mensajes de error se utilizan normalmente para evitar que los usuarios hagan cosas que se supone que no deben hacer. Los mensajes de advertencia se utilizan generalmente para recordar a los usuarios las consecuencias de sus acciones. Los mensajes de información brindan a los usuarios información útil.
Ejemplo
Cuando creamos un mensaje para el mensaje ID AB, el comando MESSAGE - MESSAGE E011 da la siguiente salida -
EAB011 This report does not support sub-number summarization.