![](/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/213.jpg)
Condición
Consiste en la ejecución de una sentencia o grupo de sentencias que se ejecutarán en base a si se cumple o no una determinada expresión lógica.
Las expresiones lógicas son todas aquellas expresiones que obtienen como resultado verdadero o falso. Existen dos formas de representar condiciones en ABAP, una de ellas es utilizando la sentencia IF-ENDIF. Ejemplo:
IF v_calificacion >= '8'.
WRITE:/'Aprobado'.
ELSE.
WRITE:/'Reprobado'.
ENDIF.
Se pueden anidar o agregar más condiciones dentro del IF-ENDIF, utilizando la sentencia ELSEIF.
Otra forma de representar condiciones en ABAP es mediante la sentencia CASE-ENDCASE. Ejemplo:
CASE v_calificación.
WHEN '10' OR '9' OR '8'.
WRITE:/'Aprobado con meritos'.
WHEN '7' OR '6'.
WRITE:/'Aprobado'.
WHEN '5' OR '4'.
WRITE:/'Aprobando raspando'.
WHEN OTHERS.
WRITE:/'Reprobado'.
ENDCASE.
Operadores Lógicos
- Y -> AND
- O -> OR
- Igual -> = o EQ
- Distinto -> <> o NE
- Mayor -> > o GT
- Menor -> < o LT
- Mayor o igual -> >= o GE
- Menor o igual -> <= o LE
Bucles
Es una secuencia de instrucciones de código que se ejecuta repetidas veces, hasta que la condición asignada a dicho bucle deja de cumplirse. Se pueden representar de varias formas. La primera de ellas es mediante la sentencia LOOP-ENDLOOP. Se utiliza esa sentecia exclusivamente cuando trabajemos con tablas internas. Mediante esta sentencia vamos a recorrer el contenido de una tabla interna, registro por registro y en cada registro vamos a realizar algún tipo de procesamiento. Ejemplo:
LOOP AT ti_salida INTO wa_salida WHERE nettobtr > 0.
WRITE:/ wa_salida-vertrag,
wa_salida-vkont,
wa_salida-belnr,
wa_salida-nettobtr.
ENDLOOP.
Otra forma de representar un bucle en ABAP es mediante la sentencia DO-ENDDO.
Vamos a utilizar la sentencia para trabajar con variables y no con tablas internas, tal como sucede con LOOP-ENDLOOP. La iteración se ejecutará solo si la condición es verdadera. Ejemplo:
DO 5 TIMES.
ADD 1 TO v_vuelta.
WRITE:/ v_vueltaa.
ENDDO.
Sentencias de control
Se utilizan para terminar el procesamiento de un bucle, de una subrutina o de todo un programa. ABAP cuenta con las siguientes sentencias de control:
- CHECK: Verifica si la condición es verdadera. ( Si es falsa y la sentencia esta dentro de un bucle, se saltearán todas las sentencias siguientes que esten dentro del bucle y se continuara 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. Ejemplo: CHECK sy-subrc EQ 0.
- EXIT: Si se ejecuta dentro de un bucle entonces saldremos del bucel, dentro de una subrutina saldremos de la misma y fuera de un bucle y fuera de una subrutina salimos del programa. Ejemplo:
IF sy-subrc EQ 0.
EXIT.
ENDIF. - CONTINUE: Se utiliza solo dentro de un bucle. Luego de la ejecución de la sentencia el sistema continúa con la siguiente iteración del bucle. Ejemplo:
CLEAR v_vuelta.
DO 5 TIMES.
ADD 1 TO v_vuelta.
IF v_vuelta EQ 5.
WRITE:/ v_vuelta.
ELSE.
CONTINUE.
ENDIF.
ENDDO. - STOP: Esta sentencia finaliza el programa en ejecución pero antes se ejecuta el evento END-OF-SELECTION, su es que este evento está escrito en el programa. Ejemplo:
IF sy-subrc NE 0.
STOP.
ENDIF. - LEAVE: Finaliza el programa en ejecución y no ejecuta el evento END-OF-SELECTION.Ejemplo:
IF sy-subrc NE 0.
LEAVE.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de Samuel Alejandro Ruiz Escalona, en su ámbito de estudios para la Carrera Consultor ABAP.
Samuel Alejandro Ruiz Escalona
Profesión: Estudiante - Guatemala - Legajo: WH30S
✒️Autor de: 17 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Certificación Académica de Samuel Ruiz