
Control del Flujo de Datos.
1.- Condiciones:
*Palabra clave IF-ENDIF
*ELSE
*CASE-ENDCASE
Si ninguna de las condicones es valida, el sistema ejecutara las declaraciones que esten debajo del WHEN OTHERS. En ambas formas se utilizaran los siguientes operadores logicos
Y AND
O OR
Igual = ,EQ
Distinto <> ,NE
Mayor > ,GT
Menor < , LT
Mayor o igual >= ,GE
Menor o igual <= , LE
Si en cada condicion, se chequea que la variable sea igual a determinado valor y la cantidad de condiciones es alta, seria aconsejable utilizar CASE-ENDCASE.
2.- BUCLES.
Los bucles en ABAP se pueden representar en varias formas
*LOOP-ENDLOOP
Con el agregado de la clausula WHERE se puede restringir el numero de lineas a leer, ya que se producira la interacion siempre y cuando la condicion.
La utilizacion de la clausula WHERE siempre y cuando sea posible, es considerada una buena practica de programacion
*DO_ENDDO la interacion se ejecutara solo si es verdadera.
Un Bucle o sitio en programacion es una sentencia que se realiza varias veces a un trozo aislado de codigo hasta que la condicion asignada a dicho bucle deje de cumplirse. Generalmente un bucle es usado para hacer una accion repetida sin tener que escribir varias veces el mismo codigo lo que ahora tiempo , deja el codigo mas claro y facilita su modificacion en el futuro. En ABAP se utiliza para trabajar con tablas internas.
3.- Sntencias de Control
Las sentencias de contro se utilizan para terminar el procesamiento de un bucle, de un proceso o de un programa
*CHECK verifica si la condicion es verdadera. Si la condicion es falsa, y la sentencia esta dentro de un bucle, se salltaran todas las sentencias siguientes que estan dentro del bucle y se continuara con la siguiente iteraccion. Fuera de un bucle, se saltaran todas las sentencias hasta el final del evento o del programa en proceso.
*EXIT: dentro de un bucle saldra del bucle, dentro de una subrutina saldra de la misma y fuera de un bucle saldra del programa.
*CONTINUE: se utiliza solo dentro de un bucle. Luego de la ejecucion de la sentencia el sistema continua con la siguente iteraccion.
*STOP: se finaliza el programa en ejecucion pero antes se ejecuta el evento END-OF-SELECTION
*LEAVE: se finaliza el programa en ejecucion pero no se ejecutara el evento END-OF-SELECTION
Debemos tener sumo cuidado en la utilizacion de las sentencias de contro CHECK, EXIT, CONTINUE, LEAVE y STOP debido a que estas alteran en forma directa el flujo se control de un programa ABAP