✒️ABAP El control del flujo de datos
ABAP El control del flujo de datos
1) Condiciones. las condiciones ABAP se pueden representar de dos formas.
a) palabra clave IF-ENDIF: ejemplo
IF <condicion>. "condicion1
declaraciones.
ELSEIF <condicion>. "condicion2
declaraciones.
ELSE. "condicion3
declaraciones.
ENDIF.
nota: si ninguna de las condiciones es valida, el sistema ejecutará las declaraciones que estén debajo del ELSE.
b) CASE-ENDCASE.
CASE CAMPO.
WHEN VALOR1. "CONDICION1
DECLARACIONES.
WHEN VALOR2. "CONDICION2
DECLARACIONES.
WHEN OTHERS. "CONDICION N
DECLARACIONES.
ENDCASE.
Nota: si ninguna de las condiciones es valida, el sistema ejecutará las declaraciones que estén debajo del WHEN OTHERS. en ambas formas se utilizan las siguientes operadores lógicos.
Y --> AND
O -->OR
IGUAL --> =, EQ
DISTINTO --> <>, NE
MAYOR --> >, GT
MENOR --> <, LT
MAYOR O IGUAL --> >=, GE
MENOR O IGUAL --> <=, LE
Nota: si en cada condición, se chequea que la variable sea igual a determinado valor y la cantidad de condiciones es alta, seria aconsejable utilizar CASE- ENDCASE.
2) BUCLES. se pueden representar de varia sformas.
a) LOOP-ENDLOOP: Ejemplo:
LOOP AT TABLA.
DECLARACIONES.
ENDLOOP.
Nota: con el agr4egado de la cláusula WHERE 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. ejemplo:
* Lopeamos la tabla interna TI_USUARIOS mientras el estado civil del usuario sea soltero
LOOP AT TI_USUARIOS WHERE_CIVIL = 'S'.
ENDLOOP.
b) DO-ENDDO: Ejemplo.
DO n TIMES.
DECLARACIONES.
ENDDO.
Nota: la iteración solo se ejecutará si la condición es verdadera. Ejemplo.
DO 5 TIMES.
ENDDO.
Un bucle o siclo en programación es una sentencia que se realiza repetidamente a un trozo aislado de códigos hasta que la condición asignada a dicho bucle deje de cumplirse, generalmente un bucle es utilizado para ser 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 lo utilizaremos principalmente para trabajar con tablas internas.
3) Sentencias de Control. se utilizan para terminar el procesamiento de un bucle, de un proceso o de un programa. Ellas son:
a) CHECK: verifica si la condición es verdadera.Si la condición es falsa, y la sentencia esta dentro de un bucle, 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 del evento o del programa en proceso. Ejemplo:
CHECK SY-SUBRC EQ 0. "EQ es equivalente a =
b) EXIT: dentro de un bucle saldra 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.
c) CONTINUE: se utiliza solo dentro de bucle. Luego de la ejecución de la sentencia el sistema continua con la siguiente iteración.
DO 4 TIMES.
IF SY- SUBRC EQ 4. " EQ ES EQUIVALENTE A =
CONTINUE.
ENDIF
ENDDO.
d) 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.
e) LEAVE: se finaliza el programa en ejecución pero no se ejecutará el evento END-OF-SELECTION. Ejemplo:
IF V_CLASE EQ 'DT'. "EQ ES EQUIVALENTE A =
LEAVE.
ENDIF.
Nota: debemos tener sumamente 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 SAP.
 
 
 
Agradecimiento:
Ha agradecido este aporte: Daniel Julio
Sobre el autor
Publicación académica de Francis Correntin, en su ámbito de estudios para la Carrera Consultor ABAP.
Francis Correntin
Profesión: Tecnico en Sistemas Ferros - Argentina - Legajo: CK40S
✒️Autor de: 33 Publicaciones Académicas
🎓Egresado del módulo:
Disponibilidad Laboral: FullTime
Certificación Académica de Francis Correntin