
Condiciones
Las condiciones en ABAP se pueden representar de dos formas:
Condiciones utilizando IF-ENDIF
IF <CONDICION>. "Condicion 1
DECLARACIONES.
ELSEIF <CONDICION>. "Condicion 2
DECLARACIONES.
ELSE. "Condicion n
DECLARACIONES.
ENDIF.
Condiciones utilizando CASE-ENDCASE
CASE CAMPO.
WHEN VALOR1. "Condicion 1
DECLARACIONES.
WHEN VALOR2. "Condicion 2
DECLARACIONES.
WHEN OTHERS. "Condicion n
DECLARACIONES.
ENDCASE.
Operadores Lógicos
Y AND
O OR
IGUAL = , EQ
DISTINTO <> , NE
MAYOR > , GT
MENOR < , LT
MAYOR O IGUAL >= , GE
MENOR O IGUAL <= , LE
Si en cada condición, se chequea que la variable sea igual a determinado valor y la cantidad de condiciones es alta, sería aconsejable utilizar CASE-ENDCASE.
Bucles
Los bucles en ABAP se pueden representar de varias formas:
Bucles utilizando LOOP-ENDLOOP
LOOP AT TABLA.
DECLARACIONES.
ENDLOOP.
Con el agregado de la cláusula WHERE se puede restringir el número de líneas a leer, ya que se producir´la iteración siempre y cuando se cumpla la condición.
LOOP AT TI_USUARIOS WHERE ESTADO_CIVIL = 'S'.
ENDLOOP.
Bucles utilizando DO-ENDDO
DO n TIMES.
DECLARACIONES.
ENDDO.
Sentencias de Control
Las sentencias de control se utilizan para terminar el procesamiento de un bucle, de un proceso o deun programa.
CHECK. Verifica si la condición es verdadera. Si la condición es falsa, y la sentencia está dentro de un bucle, se saltearán todas las sentencias siguientes que estén dentro del bucle y se continuará con la siguiente iteración. Fuera de un bucle, se saltearán todas las sentencias hasta el final del evento o del programa en proceso.
CHECK sy-subrc EQ 0.
EXIT. Dentro de un bucle saldrá del bucle, dentro de una subrutina saldrá de la misma y fuera de un bucle saldrá del programa.
IF v_clase EQ 'CA'.
EXIT.
ENDIF.
CONTINUE. Se utiliza solo dentro de bucle. Luego de la ejecución de la sentencia el sistema continua con la siguiente iteración.
DO 4 TIMES.
IF sy-subrc EQ 4.
CONTINUE.
ENDIF.
ENDDO.
STOP. Se finaliza el programa en ejecución pero antes se ejecuta el evento END-OF-SELECTION.
IF sy-subrc NE 0.
STOP.
ENDIF.
LEAVE. Se finaliza el programa en ejecución pero no se ejecutará el evento END-OF-SELECTION.
IF v_clase EQ 'DT'.
LEAVE.
ENDIF.
Debemos tener sumo cuidado en la utilización de las sentencias de control CHECK, EXIT, CONTINUE, LEAVE y STOP debido a que estas alteran en forma directa el flujo de control de un programa ABAP.