✒️ABAP / El control del flujo de datos Por Diamela Serignese
ABAP El control del flujo de datos

Condiciones
Las condiciones en ABAP se representan de dos formas:
-Usando la palabra clave IF-ENDIF. Ejemplo:
IF <CONDICION>. "Condicion 1
DECLARACIONES.
ELSEIF <CONDICION>. "Condicion 2
DECLARACIONES.
ELSE. "Condicion n
DECLARACIONES.
ENDIF.
Si ninguna de las condiciones es valida, el sistema ejecutará las declaraciones que esten debajo del ELSE.
-Usando la palabra clave CASE-ENDCASE. Ejemplo:
CASE CAMPO.
WHEN VALOR1. "Condicion 1
DECLARACIONES.
WHEN VALOR2. "Condicion 2
DECLARACIONES.
WHEN OTHERS. "Condicion n
DECLARACIONES.
ENDCASE.
Si ninguna de las condiciones es válida el sistema ejecutará las declaraciones que estén debajo del WHEN OTHERS. En ambas formas se usan los siguientes operadores lógicos:
Y AND
O OR
Igual = , EQ
Distinto <> , NE
Mayor > , GT
Menor < , LT
Mayor o igual >= , GE
Menor o igual <= , LE
Si en cada condición se chequea que la variable sea igual a determinado valor y la cantidad de condiciones es alta, deberíamos usar CASE-ENDCASE.
Bucles
En ABAP los bucles se representan de varias formas:
-Con la palabra clave LOOP-ENDLOOP. Ejemplo:
LOOP AT TABLA.
DECLARACIONES.
ENDLOOP.
Aquí Tabla es una tabla interna.
Si le agregamos la cláusula WHERE se puede restringir el numero de lineas a leer, ya que la interaccion se producirá siempre y cuando se cumpla la condición. El uso de la cláusula WHERE es considerado una buena práctica. Ejemplo:
*Loopeamos la tabla interna TI_USUARIOS mientras el estado civil del usuario sea Soltero
LOOP AT TI_USUARIOS WHERE ESTADO_CIVIL = 'S'.
ENDLOOP.
-Con la palabra clave DO-ENDDO. Ejemplo:
DO n TIMES.
DECLARACIONES.
ENDDO.
La interacción se ejecutará solo si la condición es verdadera.
*Realizamos 5 vueltas
DO 5 TIMES.
ENDDO.
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
Las sentencias de control se usan para terminar el procesamiento de un bucle, de un proceso o de un programa.
Son las siguientes:
-CHECK: verifica si la condición es verdadera. Si la condición es falsa, y la sentencia está dentro de un bucle, se saltearán todas las sentencias siguientes que esten dentro del bucle y se continuará con la siguiente interacción. Fuera de un bucle se saltearán todas las sentencias hasta el final del evento o del programa en proceso. Ejemplo:
CHECK sy-bubrc EQ 0. "EQ es equivalente a =
-EXIT: dentro de un 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'. "EQ es equivalente a =
EXIT.
ENDIF.
-CONTINUE: se usa solo dentro de un bucle. Luego de la ejecución de la sentencia el sistema continua con la siguiente interacción. Ejemplo:
DO 4 TIMES.
IF sy-subrc EQ 4. "EQ es equivalente a =
CONTINUE.
ENDIF.
ENDDO.
-STOP: se finaliza el programa en ejecución pero antes se ejecuta el evento END-OF-SELECTION. Ejemplo:
IF sy-subrc NE 0. "NE es equivalente a <>
STOP.
ENDIF.
-LEAVE: se finaliza el programa en ejecución pero no se grabará el evento END-OF-SELECTION. Ejemplo:
IF v_clase EQ 'DT'. "EQ es equivalente a =
LEAVE.
ENDIF.
Debemos tener mucho cuidado con el uso de las sentencias de control CHECK, EXIT, CONTINUE, LEAVE y STOP ya que estas alteran en forma directa el flujo de control de un programa ABAP.
 
 
 
Sobre el autor
Publicación académica de Diamela Serignese, en su ámbito de estudios para la Carrera Consultor ABAP Nivel Inicial.
Diamela Serignese
Profesión: Consultor Sap Crm / Solman - Argentina - Legajo: AA51D
✒️Autor de: 38 Publicaciones Académicas
🎓Cursando Actualmente: Carrera Consultor ABAP Nivel Inicial
Certificación Académica de Diamela Serignese






Disponibilidad Laboral: FullTime


















