![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP El control del flujo de datos
ABAP El control del flujo de datos
![ABAP El control del flujo de datos ABAP El control del flujo de datos](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/498.jpg)
CONTROL DE FLUJO DE DATOS
CONDICIONES
Las condiciones ABAP se pueden representar de dos formas. Una es utilizando la palabra clave IF-ENDIF.
IF <CONDICION>. “condición 1
DECLARACIONES.
ELSEIF <CONDICIONES>. “condición 2
DECLARACIONES.
ELSE. “condición n
DECLARACIONES.
ENDIF.
CASE CAMPO.
WHEN VALOR1. “condición 1
DECLARACIONES.
WHEN VALOR2. “condición 2
DECLARACIONES.
WHEN OTHERS. “condición n
DECLARACIONES.
ENDCASE
Si ninguna de las condiciones es válida, el sistema ejecutara las declaraciones que estén debajo del WHEN OTHERS. En ambas formas se utilizan los siguientes 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 en varias formas.
La primera es mediante la palabra clave LOOP-ENDLOOP.
LOOP AT TABLA.
DECLARACIONES.
ENDLOOP.
En el ejemplo anterior, tabla es una tabla interna
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.
La utilización de WHERE siempre y cuando se posible, es considerada una buena práctica de programación.
* lopeamos la tabla interna TI_USUARIOS mientras el estado civil del
* usuario sea soltero
LOOP AT TI:USUARIOS WHERE ESTADO_CIVIL = ‘S’.
ENDLOOP
DO n TIMES.
DECLARACIONES.
ENDDO.
La iteración se ejecutara solo si la condición es verdadera.
* realizamos 5 vueltas
DO 5 TIMES,
ENDDO.
SENTENCIAS DE CONTROL
Las sentencias de control se utilizan para terminar el proceso de un bucle, de un proceso o de un programa.
Ellas son:
CHECK: verifica si la condición es verdadera. Si la condición es falsa, y la sentencia está dentro de un bucle se saltearan todas las sentencias siguientes que estén dentro del bucle y se continuara con la siguiente iteración. Fuera de un bucle, se saltearan todas las sentencias hasta el final del evento o del proceso.
CHECK sy-subrc EQ 0. “EQ es equivalente a =
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’ “EQ es equivalente a =
EXIT.
ENDIF.
CONTINUE: se utiliza solo dentro de bucle. Luego de la ejecución de la sentencia el sistema continúa con la siguiente iteración.
DO 4 TIMES.
IF sy-subrc EQ 4. “EQ es equivalente a =
CONTINUE.
END IF.
ENDDO.
STOP: se finaliza el programa en ejecución pero antes se ejecuta el evento END-OF-SELECTION.
IF sy-subrc NE 0. “NE es equivalente a <>
STOP.
ENDIF.
LEAVE: se finaliza el programa en ejecución pero no se ejecutara el evento END-OF-SELECTION.
IF v_clase EQ ‘DT’. “EQ es equivalente a =
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.
 
 
 
Sobre el autor
Publicación académica de Jean Carlos Lopez Uzcategui, en su ámbito de estudios para la Carrera Consultor ABAP.
Jean Carlos Lopez Uzcategui
Profesión: Sistemas - Venezuela - Legajo: HS82J
✒️Autor de: 53 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime