✒️ABAP El control del flujo de datos
ABAP El control del flujo de datos
CONTROL DE FLUJO DE DATOS
1. Condiciones
se represntan de dos formas por IF-ENDIF o por CASE-ENDCASE
ejemplo de IF
IF <condicion>. "Condicion 1
DECLARACIONES.
ELSEIF <condicion>. "Condicion 2
decLARACIONES.
ELSE. "Condición n
declaraciones.
ENDIF.
Si ninguna de las IF es válida se ejecutarán las declaraciones debajo de la sentencia ELSE.
Ejemplo de CASE
CASE CAMPO.
WHEN VALOR1.
Declaraciones.
WHEN VALOR2.
Declaraciones.
WHEN OTHERS.
Declaraciones.
ENDCASE.
Sininguna de laas condiciones es valida (WHEN) se ejecutará la sentencia siguiente a OTHERS.
En ambas formas se utiliza los operadores lógicos
Y-------------------------- AND
O-------------------------- OR
IGUAL-------------------- EQ
DISTINTO--------------- NE
MAYOR------------------ GT
MENOR----------------- LT
MAYOR O IGUAL------ GE
MENOR O IGUAL----- LE
Si se chequea que la condicón de la variables es altamente probable que sea igual a determinado valor se aconseja el uso de CASE-ENDCASE
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
BUCLES
Una forma sería LOOP AT- ENDLOOP
ejemplo .......
LOOP AT TABLA.
declaraciones.
ENDLOOP.
Donde TAbla es una Tabla Interna
Si agregamos la clausula WHERE restringimos el numero de lineas a leer en el LOOP ya que la iteración se producirá siempre que se cumpla la condición de la clausula WHERE
ejemplo
LOOP AT TI_USUARIOS WHERE ESTADO_CIVIL = 'S' .
.....
.....
ENDLOOP.
Se loopea mientras el estado civil sea 'S'
Otra Forma seria con palabra clave DO-ENDDO
ejemplo
DO 5 TIMES.
Declaraciones.
ENDDO.
La iteración se ejecuta solo si es verdadera o sea hasta 5 veces
Un bucle o ciclo en programación es una sentencia que se realiza repetidas veces a un trozo aislado de código hasta que la condición asignada a dicho bucle deje de cumplirse. Generalmente se un bucle se usa para hacer una acción repetida sin tener que escribir varias veces el mismo código, lo que ahorra tiempo, deja el código mas claro y facilita su modificación en el futuro. En ABAP los usaremos principalmente para trabajar con tablas internas.
SENTENCIAS DE CONTROL
SE UTILIZAN PARA TERMINAR UN bUCLE, UN PROCESO O DE UN PROGRAMA.
.- CHECK :
Verifica si la condicion es verdadera. Si la condición es falsa, y la sentencia está dentro de un bucle, se saltean todas las sentencias siguientes que estan dentro del bucle y se continuará con la siguiente iteración. Fuera de un bucle, se saltean todas las sentencias hasta el final del evento o del programa en proceso.
CHECK sy-subrc EQ 0.
.- EXIT:
Dentro del bucle saldrá del bucle, dentro de una subrutina saldrá de la misma y fuera de un bucle saldrá del programa.
Ejemplo:
IF v_clase EQ 'CA'.
EXIT.
ENDIF.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
.- CONTINUE:
Se utiliza solo dentro del bucle.
ejemplo
DO 4 TIMES.
IF sy-subrc EQ 4.
CONTINUE.
ENDIF.
ENDDO.
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
.- STOP:
se finaliza el programa en ejecución pero antes se ejecuta el evento END-OF-SELECTioN.
IF sy-subrc NE 0 .
STOP .
ENDIF .
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
.- LEAVE:
Se finaliza el programa de ejecución pero NO se ejecutará el evento END-OF-SELECTION.
Ejemplo:
IF v_clase EQ 'DT'.
LEAVE.
ENDIF.
DEBEMOS TENER CUIDADO CON LAS SENTENCIAS CHECH, EXIT, CONTINUE, LEAVE, STOP DEBIDO A QUE ALTERAN EN FORMA DIRECTO EL FLUJO DEL PROGRAMA ABAP.
En resumen
· STOP.
Incondicional. Se debe usar sólo en el evento START-OF-SELECTION. Su efecto es cancelar todas las selecciones de las tablas de la base de datos, abandonando el evento, y activar el END-OF-SELECTION (siempre lo activa. Si no se desea esto, debe usarse EXIT en lugar de STOP).
· EXIT.
Incondicional. Abandona totalmente el bloque actual o evento (excepto eventos AT...) si no está dentro de ningún bloque, y activa la pantalla de salida. Puede usarse fuera de bucles (acaba subrutinas, acaba eventos, ...) o dentro de ellos, para finalizar estos.
· CHECK { condición | tabla_selección | SELECT-OPTIONS }.
Condicional. Si la condición es falsa, acaba el bloque de proceso o evento (si no está dentro de ningún bloque) actual; si es cierta, sigue (como si no hubiera ningún CHECK). Es decir, que si no se “pasa” el chequeo, se salta a la siguiente vuelta del bucle (funciona como un CONTINUE condicional), o abandona la subrutina, ... (funciona como un EXIT condicional).
· CONTINUE.
Incondicional.
 
 
 
Sobre el autor
Publicación académica de Carlos Alberto Carreira, en su ámbito de estudios para la Carrera Consultor ABAP.
Carlos Alberto Carreira
Profesión: Consultor Técnico en Jde W.s. - Argentina - Legajo: KC15G
✒️Autor de: 92 Publicaciones Académicas
🎓Cursando Actualmente: Consultor ABAP Nivel Inicial
🎓Egresado de los módulos:
Certificación Académica de Carlos Carreira