✒️ABAP El control del flujo de datos
ABAP El control del flujo de datos
El control de flujos de datos
Las condiciones
ABAP cuenta con sentencias para trabajar con condiciones
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
Si la expresión se cumple se ejecutará determinada sentencia o grupo de sentencias y si no se cumple entonces se ejecutará otra sentencia o grupo de sentencias.
Dos formas:
IF-ENDIF
IF v_calificación >= '8'.
WRITE:/'Aprobado'.
ELSE.
WRITE:/'Reprobado'.
ENDIF
Podemos anidar o agregar más condiciones dentro del utilizando la sentencia ELSEIF de la siguiente forma:
ELSEIF
IF v_calificación >= '9'.
WRITE:/'Aprobado con meritos'.
ELSEIF v_calificación BETWEEN '6' AND '8'.
WRITE:/'Aprobado'.
ELSEIF v_calificación BETWEEN '4' AND '6'.
WRITE:/'Aprobado raspando'.
ELSE.
WRITE:/'Reprobado'.
ENDIF
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
Operadores lógicos â–º
AND = Y
OR = O
EQ = igual (=)
NE = distinto (<>)
GT = mayor(>)
LT = menor (<)
GE = mayor o igual (>=)
LE = menor o igual (<=)
BUCLES
Un bucle o ciclo, 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.
Varias formas de representar:
â–º LOOP-ENDLOOP: tablas internas
LOOP AT ti_salida INTO wa_salida.
WRITE:/ wa_salida-vevertrag,
wa_salida-vkont,
wa_salida-belnr,
wa_salida-nettobtr.
ENDLOOP.
(recorremos cada registro de la tabla interna TI_SALIDA y lo almacenamos en la estructura WA_SALIDA)
Con el agregado de la cláusula WHERE en la sentencia LOOP-ENDLOOP 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
LOOP AT ti_salida INTO wa_salida WHERE nettobtr > 0.
WRITE:/ wa_salida-vevertrag,
wa_salida-vkont,
wa_salida-belnr,
wa_salida-nettobtr.
ENDLOOP.
(La utilización de la cláusula WHERE siempre y cuando se posible, es considerada una buena práctica de programación ya que limita o restringe el acceso secuencial de todos los registros de la tabla interna)
DO-ENDDO
Se utiliza para trabajar con variables y no con tablas internas (la iteración se ejecuta solo si la condición es verdadera)
DO 5 TIMES.
ADD 1 TO v_vuelta-
WRITE:/ v_vuelta.
ENDDO.
(realizamos 5 iteraciones y en cada una de ellas imprimimos el contenido de la variable v_vuelta)
LAS SENTENCIAS DE CONTROL
Se utilizan para terminar el procesamiento de un bucle, de una subrutina o de todo un programa.
â–ºCHECK: sentencia que verifica si la condición es verdadera.
Si la condición es falsa y la sentencia se encuentra dentro de un bucle, por ejemplo LOOP-ENDLOOP, entonces se saltearán todas las sentencias siguientes que 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.
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 un bucle 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 ejecución de la sentencia el sistema continúa con la siguiente iteración de 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 ejecución pero antes se ejecuta el evento END-OF-SELECTION, si es que este evento esta escrito en el programa.
IF sy_subrc NE 0.
STOP.
ENDIF.
â–ºLEAVE: esta sentencia finaliza el programa en ejecución y no se ejecuta el evento END-OF-SELECTION.
IF sy_subrc NE 0.
LEAVE.
ENDIF.
(Debemos tener sumo cuidado en la utilización de las sentencias de control CHECK, EXIT, CONTINUE, LEAVE y STOP debido a que estas alteran en forma directa el flujo de control de un programa.
 
 
 
Sobre el autor
Publicación académica de Estefania Selene Dulac, en su ámbito de estudios para la Carrera Consultor ABAP.
Estefania Selene Dulac
Profesión: Consultora Seguridad Sap - Argentina - Legajo: XT35F
✒️Autor de: 111 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime
Presentación:
Cuento con un muy buen manejo de herramientas informáticas y facilidad para aprender nuevas aplicaciones. me considero una persona responsable, entusiasta, organizada y motivada.
Certificación Académica de Estefania Dulac