![](/cvo_files/imgs_sap_abap/logos/logo_cvo_academy_it.png)
✒️ABAP El control del flujo de datos
ABAP El control del flujo de datos
![ABAP El control del flujo de datos ABAP El control del flujo de datos](https://www.cvosoft.com/cvo_files/imgs_sap_abap/og-images/96.jpg)
Condiciones
- IF-ENDIF: Si ninguna de las condiciones es valida, el sistema ejecutará las declaraciones que estén debajo de ELSE. Ejemplo:
IF <CONDICION>
<DECLARACIONES>
ELSEIF <CONDICION>
<DECLARACIONES>
ELSE. condicion N
ENDIF.
- CASE-ENDCASE: Si ninguna de las condiciones es valida el sistema ejecutara las declaraciones que estén debajo del WHEN OTHERS. Ejemplo
CASE CAMPO.
WHEN VALOR1 "CONDICION 1"
DECLARACIONES.
WHEN VALOR2. "CONDICION2"
DECLARACIONES.
WHEN OTHERS "CONDICION N"
DECLARACIONES
ENDCASE.
- OPERADORES LOGICOS:
- Y => AND
- O => OR
- IGUAL => =, EQ
- DISTINTO => <>, NE
- MAYOR => >, GT
- MENOR => <, LT
- MAYOR O IGUAL => >=, GE
- MENOR O IGUAL => <=, LE
Si en cada condicion se chequea que la variable sea igual a determinado valor y la cantidad de condiciones es alta, seria aconsejable utilizar case-endcase.
BUCLES
- LOOP-ENDLOOP: En el siguiente ejemplo, "Tabla" es una tabla interna.
LOOP AT TABLA.
DECLARACIONES
ENDLOOP.
Si a nuestro ejemplo le agregamos la clausula "WHERE" se puede restringir el numero de lineas a leer, ya que se producirá la iteración siempre y cuando se cumpla la condicion. Ejemplo: Loopeamos la tabla interna TI_Ususarios mientras el estado civil del usuario sea soltero
LOOP AT TI_USUARIOS WHERE ESTADO_CIVIL = 'S'.
ENDLOOP.
- DO-ENDDO: Se usa para hacer una accion repetida sin tener que repetir el codigo, la iteracion se ejecutara solo si la condición es verdadera. EJEMPLO: REALIZAMOS 5 VUELTAS
DO 5 TIMES.
ENDDO
SENTENCIAS DE CONTROL
Se utilizan para terminar el procesamiento de un bucle, de un proceso o de un programa, ellas son:
- CHECK: Verifica si la condicion es verdadera. Si la condicion es falsa, y la sentencia esta dentro de un bucle, se saltearan todas las sentencias siguientes que esten dentro del bucle y se continuara con la siguiente iteracion. Fuera de un bucle, se saltearan todas las sentencias hasta el final del evento (recordar que sap trabaja por eventos) o programa en proceso. EJEMPLO:
CHECK Sy-sybrc EQ 0.
- EXIT: Dentro de un bucle saldrá del bucle, dentro de una subrutina saldra de la misma y fuera de un bucle saldrá del programa. EJEMPLO
IF v_clase QE 'CA'.
EXIT.
ENDIF.
- CONTINUE: Se utiliza solo dentro de bucle. Luego de la ejecucion de la sentencia el sistema continua con la siguiente iteración. EJEMPLO:
DO 4 TIMES
IF sy-subrc EQ 4.
CONTINUE.
ENDIF.
ENDDO.
- STOP: Se finaliza el programa en ejecucion pero antes se ejecuta el evento END-OF-SELECTION
IF sy-subrc NE 0. "NE es equivalente a <>"
STOP.
ENDIF.
- LEAVE: Se finaliza el programa en ejecucion pero no se ejecutara el evento END-OF-SELECTION.
IF v_clase EQ 'DT'.
LEAVE.
ENDIF.
 
 
 
Sobre el autor
Publicación académica de Javier Andres Belmar Marchant, en su ámbito de estudios para la Carrera Consultor ABAP.
Javier Andres Belmar Marchant
Profesión: Analista Programador de Sistemas - Chile - Legajo: OU60W
✒️Autor de: 30 Publicaciones Académicas
🎓Egresado de los módulos:
Disponibilidad Laboral: FullTime