✒️ABAP El control del flujo de datos
ABAP El control del flujo de datos
Apuntes Control de Flujo de Datos:
Control de flujo de datos.
1. Condiciones.
Las condiciones en ABAP se pueden representar de dos maneras:
a. IF-ELSEIF-ELSE-ENDIF.
IF Condicion 1.
Sentencias.
ESLIF Condicion 2.
Sentencias.
ELSE Condicion n
Sentencias.
ENDIF.
b. CASE-WHEN-WHEN OTHERS-ENDCASE.
CASE v_campo1.
WHEN <VALOR1>.
SENTENCIAS.
WHEN <VALOR2>.
SENTENCIAS.
WHEN OTHERS.
SENTENCIAS.
END-CASE.
En ambas formas se utilizan los operadores lógicos:
AND |
Y |
OR |
O |
= , EQ |
Igual |
<> , NE |
Distinto |
> , GT |
Mayor que |
< , LT |
Menor que |
>= , GE |
Mayor o igual que |
<= , LE |
Menor o Igual que |
Si en cada condición se chequea que la variable sea igual a determinado valor, y la cantidad de valores es alta, es preferible utilizar CASE-ENDCASE.
2. Bucles
Los bucles en ABAP se pueden representar de varias formas. La primera mediante la palabra clave LOOP-ENDLOOP.
Ej. LOOP AT <Tabla>.
SENTENCIAS.
ENDLOOP.
Tabla, en el ejemplo, es una tabla interna. Se puede utilizar la cláusula WHERE, siempre que deseemos parsear las filas de la tabla, que cumplan con la condición después del WHERE.
Ej. LOOP AT T1_USUARIOS WHERE ESTADO_CIVIL = ‘S’.
ENDLOOP.
Otra forma es la utilización de DO-ENDDO.
Ej. DO n TIMES.
SENTENCIAS.
ENDDO.
Donde n es el número de veces que se deben ejecutar las sentencias.
3. Sentencias de Control
Las sentencias de control determinan cuando se termina el procesamiento de un bucle, de un proceso e de un programa. Estas son:
a. CHECK : Verifica si la condición es verdadera.
Si la condición es falsa y la sentencia está dentro de un bucle, se ignorarán todas las sentencias siguientes dentro del bucle y se continuará con la siguiente iteración.
Si la sentencia está fuera de un bucle y la condición es falsa, se ignorarán todas las sentencias hasta el final del evento o proceso.
Ej. CHECK sy-subrc EQ 0.
b. EXIT : Dentro de un bucle, hará que la ejecución continúe fuera del bucle; si es dentro de una subrutina, saldrá de la subrutina y si está en un programa, fuera de un bucle, saldrá fuera del programa.
Ej. IF v_continuo = ‘NO’.
EXIT.
ENDIF.
c. CONTUNUE : Solo se utiliza dentro de un bucle. Al ejecutarse la sentencia el sistema continua con la siguiente iteración.
Ej. DO 4 TIMES.
IF sy-subrc = 4.
CONTINUE.
END-IF.
ENDDO.
d. STOP : Se finaliza el programa, pero antes se ejecuta el evento END-OF-SELECTION.
Ej. IF sy-subrc <> 0.
STOP.
ENDIF.
e. LEAVE : Se finaliza el programa, pero antes se no se ejecuta el evento END-OF-SELECTION.
Ej. IF sy-subrc <> 0.
LEAVE.
ENDIF.
Todas las sentencias anteriores deben utilizarse con mucho cuidado ya que alteran el flujo normal de control de un programa ABAP.
 
 
 
Sobre el autor
Publicación académica de Oscar Perez, en su ámbito de estudios para la Carrera Consultor ABAP.
Oscar Perez
Profesión: Ingeniero de Sistemas. Consultor y Desarrollador en Peoplesoft - Canada - Legajo: FD38F
✒️Autor de: 105 Publicaciones Académicas
🎓Cursando Actualmente: Master en Programación ABAP Orientado a Objetos
🎓Egresado de los módulos:
Certificación Académica de Oscar Perez