✒️ABAP El control del flujo de datos
ABAP El control del flujo de datos
Las 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.aquellas expreciones que obtienen como resultado verdadero o falso.
Existen dos formas de representar condiciones en ABAP, una de ellas es utilizando la sentencia IF-ENDIF.
DATA: v_calificacion (1) TYPE c VALUE '8'.
START-OF-SELECTION.
IF v_calificacion >= '8'.
Podemos anidar o agregar más condiciones dentro del IF-ENDIF, utilizando la sentencia ELSEIF de la siguiente forma:
IF v_calificacion >= '9'.
WRITE:/ 'Aprobado con meditos'.
ELSEIF v_calificacion BETWEEN '6' AND '8'.
WRITE:/ 'Aprobado'.
ELSEIF v_calificacion BETWEEN '4' AND '6'.
WRUTE:/ 'Aprobado raspando'.
ELSE.
WRITE:/ 'Reprobado'.
ENDIF.
WRITE:/ 'Aprobado'.
ENDIF.
SI ninguna de las condiciones es válida, el sistema ejecutará las declaraciones que estan debajo del ELSE.
La otra forma de reprecentar condiciones en ABAP mediante la sentencia CASE -ENDCAE.
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.
Si ninguna de las condiciones es válida entonces el sistema ejecuratá las declaraciones que estén debajo del WHEN OTHERS.
Los operadores lógicos que tenemos disponibles en ABAP son: AND - OR - EQ - NE - GT - LT - GE - LE.
Y ------- AND
O ------- OR
IGUAL ------- = O EQ
DISTINTO ------- <> O NE
MAYOR ------- > O GT
MENOR ------- < O LT
MAYAR O IGUAL ------ <= O GE
MENOR O IGUAL ------ >= O LE
Los blucles: una bucle o ciclo, en programación es una secuencia de intrucciones de codigo que se ejecuta repetidas veses, hasta que la condición asignada a dicho bucle deja de cumplirse.
Las primera de ellas es mediante la secuencia LOOP-ENDLOP, estas la utilizaremos exclusivamente cuando trabajamos 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.
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 rentringir el número de lineas a leer, ya que se producirá la interación sienpre y cuando se cumpla la condición.
*Recorremos Ti salida siempre y cuando el campo NETTOBTR sea mayor a cero
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 es mediante la sentencia DO-ENDDO.
Vamos a utilizar la sentencia DO-ENDDO para trabajar con variables y no con tablas internas, tal como sucede con LOOP-ENDLOOP.
La iteración se ejecuta solo si la condicion es verdadera.
DO 5 TIMES. Realizamos 5 interaciones y en cada una de ellas imprimimos
ADD 1 TO v_vuelta. el contenido de la variable v_vuelta
WRITE:/ v_vuelta.
ENDDO.
Las sentencias de control: se utilisa para terminar el prosesamiento de un bucle, de una subrutina o de todo un programa. en ABAP contamos con las siguientes sentencias de control:
- CHECK: esta sentencia verifica si la condición es verdadera.
CHECK sy-subrc EQ 0.
- EXIT: si ejecutamos esta sentencia dentro de un bucle entonses saldremos del, 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 loso dentro de un bucle. luego de la ejecucion de la sentencia el sistema continúa con la siguiente interacion del bucle.
CLEAR v_vuelta.
DO 5 TIMES. Solo inprimimos en pantalla la 5ta vuelta las
ADD 1 TO v_vuelta. anteriores las salteamos con CONTINUE
IF v_vuelta EQ 5.
WRITE:/ v_vuelta.
ELSE.
CONTINUE.
ENDIF.
ENDDO.
- STOP: esta sentencia finaliza el programa en ejecucion 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 finalisa el programa en ejecucion y se ejecuta el evento END-OF-SELECTION
IF sy-subrc NE 0.
LEAVE.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de Javier Miguel Angel Barcelo, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Miguel Angel Barcelo
Profesión: Militar - Argentina - Legajo: DQ34X
✒️Autor de: 27 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
Certificación Académica de Javier Angel