Ahora veremos algunas de la reglas y sintaxis que se usa en los programas de ABAP. Aprenderemos cuales son los operadores lógicos, como se agregan comentarios al programa, como declarar variables y usar las instrucciones de ABAP.

Estructura básica de un programa sencillo.

Un programa básico de ABAP tiene una estructura como esta:
REPORT nombre_programa

"Declaración de constantes

"Declaración de variables

"Lineas de código.

Comentarios

Los programas básicos inician con la instrucción REPORT y un nombre, luego declaramos variables, constantes y escribimos el código del programa. Existen dos formas de agregar comentarios a un programa, si colocamos un asterisco (*) como primer carácter en una linea, toda la linea se trata como un comentario, para que funcione, el asterisco debe ser el primer carácter en la linea, no funciona si antes del asterisco hay un espacio en blanco. Si agregamos unas comillas dobles («), todo después de las comillas es tratado como un comentario en esa linea. Ya sea el asterisco o las comillas dobles solo afectan la linea en la que se encuentran, no existen comentarios de bloque como los usados en lenguajes inspirados en C/C++ (/* */).

Fin de instrucción

En ABAP toda instrucción debe finalizar con un punto (.) esto es equivalente al punto y coma (;) que se usa en otros lenguajes como C/C++, Javascript, etc.

Operadores lógicos

Los operadores lógicos se resumen en esta tabla y vienen en dos opciones, utilizando símbolos como ( = ) o como letras por ejemplo EQ. Tenemos la libertad de usar el que más nos guste. operadores-logicos

Bloques de decisión y ciclos (bucle)

Sentencia IF simple: Ejecuta un código si la condición es cierta
IF variable = valor.
    "codigo.....
ENDIF.
Sentencia IF/ELSE: Ejecuta un código si la condición es cierta, sino ejecuta otro código
IF variable = valor.
    "codigo.....
ELSE.
    "otro codigo......
ENDIF.
Sentencia IF/ELSEIF: Ejecuta un código si la condición es cierta, sino ejecuta otro código si la segunda condicion es cierta.
IF variable = valor.
    "codigo.....
ELSEIF otra_variable = otro_valor.
    "otro codigo......
ENDIF.
Sentencia CASE: Evalúa una variable y ejecuta el código según el valor de la variable, por ejemplo si VARIABLE tiene un ‘1’, ejecuta «codigo 1», si contiene un ‘2’ ejecuta ‘codigo 2’, si es cualquier otro valor ejecuta ‘codigo 3’
CASE variable.
  WHEN '1'.
    "codigo 1
  WHEN '2'.
    "codigo 2
  WHEN OTHERS.
    "codigo 3
ENDCASE.
La sentencia DO, ejecuta un código n cantidad de veces, en el siguiente ejemplo el código se ejecuta 5 veces. El valor 5 se puede sustituir por una variable de tipo numérica.
DO 5 TIMES. 
 "5 es la cantidad de veces 
 "que ese ejecute este codigo 
ENDDO.
La sentencia WHILE, ejecuta el código mientras la condición que se evalúa se cierta.
WHILE variable = valor. 
 "Codigo 
ENDWHILE.

Variables del sistema

SAP mantiene una estructura llamada SY con valores del sistema, algunos de los más usados son: variables-sistema-sap

Parámetros de un programa

Para solicitar un parámetro sencillo (un solo valor), utilizamos la sentencia PARAMETER, con el siguiente ejemplo se solicitará un parámetro llamado mes de tipo entero
PARAMETER mes TYPE i.
Si necesitamos solicitar un rango de valores, por ejemplo una lista de sociedades, usamos la sentencia SELECT-OPTIONS, en esta debemos indicar un par tabla-campo y ademas haber declarado la tabla, por ejemplo:
TABLES t001."Declarar la tabla que vamos a usar

SELECT-OPTIONS sociedad FOR t001-bukrs.
Para usar un parámetro de tipo check box usamos AS CHECKBOX, podemos incluir un valor default = ‘X’ para que esta marcado de forma predeterminada. En SAP una X (mayúscula) es igual true (cierto) y un espacio en blanco es igual falso.
PARAMETER cheque as CHECKBOX DEFAULT 'X'.
Si necesitamos indicar un parámetro en forma de botones de radio, el truco es definir varios parámetros dentro del mismo grupo (en este ejemplo es gp1), podemos reutilizar la sentencia parameter (y muchas otras) colocando dos puntos (:) y una lista de parámetros separados por comas.
PARAMETER: radio1 RADIOBUTTON GROUP gp1 DEFAULT 'X',
           radio2 RADIOBUTTON GROUP gp1.
También podemos crear marcos para agrupar parámetros según algún criterio de clasificación usando la sentencia SELECTION-SCREEN, por ejemplo el siguiente codigo genera un marco para un parametro
SELECTION-SCREEN BEGIN OF BLOCK bloque1 WITH FRAME TITLE text-001. "Abre marco
   PARAMETER mes TYPE i. "Parametro
SELECTION-SCREEN END OF BLOCK bloque1. "cierra marco
En el código anterior vemos que hay una variable llamada text-001, que es donde esta el titulo del marco, para asignarle un texto hacemos doble clic sobre él. Si hemos probado estos fragmentos de código en nuestros programas veremos que los nombres que se muestran al ejecutarlo no son muy amigables, para cambiarlos entramos al menú Pasar a > Elementos de texto > Textos de selección. Luego definimos los nombres deseados y activamos los textos textos-seleccion

Imprimir textos en pantalla

Para mostrar textos en pantalla usamos la sentencia WRITE, aqui hay algunos ejemplos de como se utiliza:
WRITE 'Valor'.
WRITE variable.
WRITE: / 'Texto', 'Otro texto'.
Para imprimir más de un texto agregamos dos puntos después del WRITE, el símbolo / se usa para hacer un salto de linea.

Ejercicio

Crear un programa que reciba un número del 1 al 7 y envié un mensaje diciendo que día de la semana es, por ejemplo si se ingresa 1 que imprima un mensaje diciendo “Domingo”. Si el número no está entre 1 y 7 que envíe un error.

Elige el tema con el que deseas continuar

  1. Transacciones más utilizadas en ABAP
  2. Uso del editor de código de ABAP
  3. Declaración de variables, constantes y tipos de datos
  4. Sintaxis de ABAP