✒️ABAP / El control del flujo de datos Por Mayra Pino Rodriguez
ABAP El control del flujo de datos

CONTROL DEL FLUJO DE DATOS
CONDICIONES
SE PUEDEN REPRESENTAR DE 2 FORMAS:
- Utilizando la palabra clave IF-ENDIF:
Esta sentencia define una estructura de control, la cual puede contener múltiples bloques de sentencia, de las cuales una de ellas será ejecutada.
Las expresiones lógicas, comenzando con la instrucción IF, se comprueban de arriba a abajo y el bloque de instrucciones después de la primera se ejecuta durante la expresión lógica.
Si ninguna de las expresiones lógicas son verdaderas, se ejecuta el bloque de instrucciones después de la instrucción ELSE.
Ej: IF <condicion>.
Declaraciones.
ELSEIF <condicion>.
Declaraciones.
ELSE.
Declaraciones.
ENDIF.
- Utilizando CASE-ENDCASE.
Ej: CASE Campo.
WHEN Valor1. "Condicion 1
Declaraciones.
WHEN Valor2. "Condicion 2
Declaraciones.
WHEN OTHERS. "Condicion n
Declaraciones.
ENDCASE.
Si ninguna de las condiciones es valida, el sistema ejecutará las declaraciones que estén debajo del WHEN OTHERS.
Se puede utilizar 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
La sintaxis de la sentencia CASE es la siguiente:
CASE operando.
[WHEN operando1 [OR operando2 [OR operando3 [...]]].
[bloque_sentencias_1]]
...
[WHEN OTHERS.
[bloque_sentencias_n]]
ENDCASE.
Solo se podrá ejecutar un bloque de sentencia dependiendo del valor almacenado en operando.
Comenzando desde la primera sentencia WHEN, se compara el contenido del operando con el contenido de operando1, operando2, etc...desde arriba hacia abajo.
El bloque de sentencia se ejecutará cuando se encuentre la primero coincidencia.
Sería aconsejable utilizar CASE-ENDCASE si en cada condición, se chequea q la variable sea igual a determinado valor y la cantidad es alta.
BUCLES O CICLOS
Es una sentencia q se realiza repetidamente hasta q la condición asignada a dicho bucle deje de cumplirse. Es utilizado para hacer una acción repetida sin tener q escribir varias veces el mismo código lo q ahorra tiempo, deja el codigo mas claro y facilita su modificación en el futuro.
Se utilizará para trabajar ppalmente con tablas internas.
- LOOP-ENDLOOP:
Mediante la sentencia LOOP podremos recorrer registro a registro, el contenido de una tabla interna.
La sintaxis de la sentencia LOOP-ENDLOOP es la siguiente:
LOOP AT <tabla_interna>
Declaraciones.
ENDLOOP.
Existen muchas variantes de la sentencia LOOP-ENDLOOP dependiendo principalmente si existe una cabecera de la tabla interna o no.
Veamos unos ejemplos de su utilización:
Ej1: LOOP AT ti_log WHERE soc = ti_oper_alv-soc
AND oper = ti_oper_alv-oper.
DELETE ti_oper_alv.
ENDLOOP.
Con la cláusula WHERE se puede restringir el número de líneas a leer, ya q se producirá la iteración siempre y cuando se cumpla la condición.
Ej2: *Lopeamos la tabla interna TI_USUARIOS mientras el estado civil del usuario sea Soltero.
LOOP AT TI_USUARIOS WHERE ESTADO_CIVIL = 'S'.
ENDLOOP.
- DO-ENDDO:
La palabra reservada del sistema DO-ENDDO se utiliza para la representación de bucles incondicionales o controlados mediante indices.
La sintaxis de la sentencia DO-ENDDO es la siguiente:
DO n TIMES
[bloque_de_sentencias]
ENDDO.
Sin la adición ''n veces", el bloque de instrucciones se repite hasta que se sale con uno de los bucle de salida de declaraciones como SALIR.
De lo contrario, el bucle se ejecutará sin fin.
Con el agregado de 'n veces' el número de pasadas de bucle es limitado.
Aquí n es una expresión numérica de tipo i.
El bloque de instrucciones se ejecuta sólo si n> 0.
El valor numérico que tiene n en el punto de entrada en el bucle determina el número de veces que el bloque de instrucciones se executed. Los cambios realizados en el valor de n dentro del bucle no será considerada por la estructura de control.
Ej: *Realizamos 5 vueltas
DO 5 TIMES.
ENDDO.
Un bucle es una sentencia q se realiza repetidas veces a un trozo aislado de código hasta q la condición asignada a dicho bucle deje de cumplirse, generalmente un bucle es utilizado para hacer una acción repetida sin tener q escribir varias veces el mismo código lo q ahorra tiempo, deja el código más claro y facilita su modificación en el futuro . En ABAP lo utilizaremos cuando trabajemos con tablas internas.
SENTENCIAS DE CONTROL
Se utilizan para terminar el procesamiento de un bucle, de un proceso o de un 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 q 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.
Sintaxis:
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 del bucle. Luego de la ejecución de la sentencia el sistema continua con la
siguiente iteración.
Ej: Do 4 TIMES.
 
 
 
Sobre el autor
Publicación académica de Mayra Maria Pino Rodriguez, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Mayra Maria Pino Rodriguez
Profesión: Licenciada Cibernética Matemática - Republica Dominicana - Legajo: RA62Z
✒️Autor de: 56 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Mayra Pino






Disponibilidad Laboral: FullTime


















