![](/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/26.jpg)
El control del flujo de datos
1. Las condiciones
Condicion: Consiste en la ejecucion de una sentencia o grupo de sentencias que se ejecutaran en base a si se cumple o no una determinada expersion logica.
Las expersiones logicas son todas aquellas expresiones que se obtienen como resultado verdadero o falso.
Ejemplo: 1 mas 1 = 2.
Existen 2 formas de representar condiciones en ABAP, una de ellas es utilizando la sentencia IF-ENDIF.
Ej:
DATA: v_calificacion(1) TYPE c VALUE '8',
START-OF-SELECTIOM.
IF v_calificacion >= '8'
Write:/ 'Aprobado'.
ELSE.
Write:/ 'Reprobado'.
ENDIF.
Podemos anidar o agregar mas condiciones dentro del IF-ENDIF, utilizando la sentencia ELSEIF:
IF v_calificacion >= '9'
Write:/ 'Aprobado con meritos'.
ELSEIF v_calificacion BETWEEN '6' AND '8'.
WRITE:/ 'Aprobado'.
ELSEIF v_calificacion BETWEEN '4' AND '6'.
WRITE:/ 'Aprobado reaspando'.
ELSE.
Write:/ 'Reprobado'.
ENDIF.
La otra forma de represnar condicione es mediante CASE-ENDCASE.
CASE v_calificacion.
WHEN '10' OR '9' OR '8'.
WRITE:/ 'Aprobado con meritos'.
WHEN '7' OR '6'.
Write:/ 'Aprobado'.
WHEN '5' OR '4'.
Write:/ 'Aprobado raspando'.
WHEN OTHERS.
WRITE:/ 'Reprobado'.
ENDCASE.
Ya sea utilizando IF-ENDIF o CASE-END CASE vamos a emplear los operadores logicos. Los operadores logicos que tenemos son: AND (y) - OR (o) - EQ (igual =) - NE (distinto <>) - GT (Mayor >) - LT (Menor <) - GE (Mayor o igual >=) - LE (Menor o igual <=).
2. los bucles
Bucle o ciclo en programacion es una secuencia de instrucciones de codigo que se ejecuta repetidas veces hasta que la condicion asignada a dicho bulce deja de cumplirse
Los bucles en ABAP se puede representar de varias formas
- Mediante la sentencia LOOP-ENDLOOP. La utilizaremos exclusivamente cuando trabajaemos con tablas internas. Ejemplo:
LOOP AT ti_salida INTO wa_salida-
WRITE:/ wa_salida-vertrag,
wa_salida-Vkont,
wa_salida-belnr,
wa_salida_nettobtr.
ENDLOOP.
Con el agregado de la clausula WHERE en la sentencia LOOP- ENDLOOP. se puede restringir el numero de lineas a leer.
2. Otra forma de representar un bucle es mediante la sentencia DO-EMDDO.
Vamos a utilizar esta sentencia para trabajar con variables y no con tablas internas. ejemplo:
DO 5 Times.
ADD 1 TO v_vuelta.
Write:/ v_vuelta.
ENDDO.
3. Las sentecias de control
Sentencia de control se utiliza para terminar el procesamiento de un bucle, subrutina o de todo un programa
En ABAP contamos con las siguientes sentencias:
- Check: esta sentencia verifica si la condicion es verdadera
Si la condicion es falsa y la sentencia esta dentro de un bucle, por ejempl un LOOP-ENDLOOP, entonces se saltearan las sentencias siguientes que esten dentro del bucle y se continuara con la siguient eiteracion.
Si la condicion es verdadera entonces se continua con el procesamiento: CHECK sy-subrc EQ 0.
- EXIT: si ejecutamos esta sentencia dentro de un bucle entonces saldremos del bucle, dentro de una subrutina entonces saldremos de la misma y fuera de una subrutina salimos del programa:
IF sy-subrc EQ 0.
EXIT.
ENDIF.
- Continue: esta sentencia se utiliza solo dentro de un bucle. Luego de la ejecucion de la sentencia el sistema continua con la siguiente iteracion del bucle
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 ejecucion pero antes se ejecutara el evento END-OF-SELECTION, si es que este evento esta escrito en el programa
IF sy-subrc NW 0.
STOP.
ENDIF.
- LEAVE: esta sentencia finaliza el programa en ejecucion y no se ejecuta el evento END-OF-SLECTION.
IF sy-subrc NE 0.
LEAVE.
ENDIF.
Debemos tener sumo cuidado en la utilizacion de las sentencias de control CHECK, EXIT, CONTINUE, LEAVE y STOP debido a que estas alteran en forma directa el flujo de contros de un programa ABAP.
 
 
 
Sobre el autor
Publicación académica de Lucas Mera, en su ámbito de estudios para la Carrera Consultor ABAP.
Lucas Mera
Profesión: Analista de Sisemas - Argentina - Legajo: SW47M
✒️Autor de: 28 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Presentación:
Profesional con sólida experiencia en el liderazgo, comunicación, gestión negocio y desarrollado en empresas internacionales de gran envergadura.certificado en itil v.3 y scrum master.
Certificación Académica de Lucas Mera