✒️ABAP El control del flujo de datos
ABAP El control del flujo de datos
Las condiciones:
IF-ENDIF:
- Dentro del bloque IF-ENDIF se puede agregar cuantos líneas se deseen de la sentencia ELSEIF lo cual validará el cumplimiento de otra condición para decidir con que código fuente proseguir.
- Con la sentencia ELSE indicamos al programa como accionar en caso de que no se haya cumplido el condicional IF cabecera y ninguno de los condicionales ELSEIF en caso de que existan. Esta sentencia se debe colocar dentro del bloque del condicional IF-ENDIF y posterior a todos los elseif.
IF <CONDICION>.
Declaraciones.
ELSEIF <CONDICION>.
Declaraciones.
ELSE.
Declaraciones.
ENDIF.
CASE-ENDCASE: esta función es utilizada similar a la sentencia switch de lenguaje DASH en PowerBI. Se analiza una variable en particular y si el valor contenido es igual al especificado en las cláusulas WHEN se ejecutará la sentencia correspondiente. En caso de que el valor de la variable analizada no coincida se ejecutara el código fuente posterior a la sentencia WHEN OTHERS. Las sentencias WHEN y WHEN OTHERS se especifican dentro del bloque CASE-ENDCASE.
CASE campo.
WHEN VALOR1.
Declaraciones.
WHEN VALOR2.
Declaraciones.
WHEN OTHERS.
Declaraciones.
ENDCASE.
OPERADORES LÓGICOS:
- AND
- OR
- = (EQ)
- <> (NE)
- > (GT)
- < (LT)
- >= (GE)
- <= (LE)
Los Bucles:
Un bucle en programación es una sentencia que se realiza repetidamente a un trozo aislado de código hasta que la condición asignada a dicho bucle deje de cumplirse. Son muy usados para trabajar con tablas internas.
LOOP-ENDLOOP: permite recorrer registro a registro una tabla internas y por cada vez que se reitera el proceso procesar el código fuente anunciado en las declaraciones.
- Con el agregado de la palabra clave WHEN 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 especifica en el WHEN.
- La clausula INTO sirve para especificar la estructura en la cual serán asignadas las variables del registro que se esta procesando en cada una de las iteraciones del bucle.
LOOP AT ti_ejemplo INTO wa_ejemplo
WHERE estado_civil = 'S'.
DECLARACIONES.
ENDLOOP.
DO-ENDDO: Este tipo de bucle permite realizar una operación un determino n número de veces.
DO n TIMES.
DECLARACIONES.
ENDDO.
Las sentencias de control:
Son usadas 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 especificada es falsa, y la sentencia CHECK se encuentra dentro de un bucle, se saltearán todas las sentencias siguientes especificadas en el bucle y se procederá a continuar con la siguiente iteración. Fuera de un bucle se saltearán todas las sentencias hasta el final del evento o del programa.
CHEK sy-subrc EQ 0.
EXIT: dentro de un bucle saldrá del mismo, dentro de una subrutina saldrá de la misma y fuera de un bucle y subrutina saldrá del programa.
IF v_clase = 'CA'.
EXIT.
ENDIF.
CONTINUE: se utiliza solo dentro de los bucles. Luego de la ejecución de la sentencia el sistema continua con la siguiente iteración sin procesar el código por debajo en el mismo bucle.
DO 4 TIMES.
IF sy-subrc = 4.
CONTINUE.
ENDIF.
ENDDO.
STOP. se finalizará el programa pero antes se ejecutará el evento END-OF-SELECTION.
LEAVE: se finalizara el programa pero no se ejecutará el evento END-OF-SELECTION.
Cuando se recorre un programa con el debbuger se pueden eliminar registros de las tablas internas para hacer pruebas y distintos análisis. Al igual que se puede modificar el contenido de las variables haciendo clic en el icono del lápiz.
Diferencias entre LEAVE, EXIT y STOP.
- LEAVE finalizará el programa y no se ejecutará el evento END-OF-SELECTION. Además se noto que no se imprimen las sentencias WRITE escritas anteriormente
- EXIT si esta fuera de un bucle y fuera de una subrutina finalizará el programa y no se ejecutará el evento END-OF-SELECTION. Además se noto que sí se imprimen las sentencias WRITE escritas anteriormente.
En caso de estar dentro de una subrutina saldrá de la misma y en caso de estar dentro de bucle saldrá del mismo. - STOP finalizará el programa y se ejecutará el evento END-OF-SELECTION. Además se noto que sí se imprimen las sentencias WRITE escritas anteriormente. (Lo única sentencias que se saltean son las intermedias entre el nivel de esta línea y el inicio del END-OF-SELECTION)
 
 
 
Sobre el autor
Publicación académica de German Ariel Fritsch, en su ámbito de estudios para la Carrera Consultor ABAP.
German Ariel Fritsch
Profesión: Ingeniero Industrial - Argentina - Legajo: EW95G
✒️Autor de: 20 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de German Fritsch