
Condiciones:
Las condiciones de abap se pueden representar de dos formas utilizando la clave IF_ENDIF
IF <CONDICION>.
declaraciónes.
ELSEIF <CONDICION>
declaraciónes.
ELSE.
declaraciónes.
ENDIF.
De otra forma es mediante CASE-ENDCASE
CASE CAMPO.
WHEN VALOR1.
DECLARACIONES.
WHEN VALOR2.
DECLARACIONES.
WHEN OTHERS.
DECLARACIONES.
ENDCASE.
Operadores lógicos
Y AND
O OR
Igual = , EQ
Dstinto <> ,NE
Mayor >, GT
Menor <,LT
Mayor o igual >=, GE
Menor o igual <=, LE
Si se cheque una variable sea igual a determinado valor y la cantidad de condiciónes es alta, es aconsejable utilizar CASE-ENDCASE.
BUCLES
Se pueden representar de varias formas mediante LOOP_ENDLOOP
LOOP AT TABLA.
DECLARACIONES
ENDLOOP.
Con el agregado de la cláusula WHERE se puede restringir el número de líneas a leer producirá la interacción siempre y cuando cumpla con la condición.
*loopeamos la tabla iterna TI_USUARIOS mientras el estado civil del usuario soltero.
LOOP AT TI_USUARIOS WHERE ESTADO_CIVIL = 'S'.
ENDLOOP.
Otra forma es mediante DO-ENDDO
DO n TIMES.
DECLARACIONES.
ENDDO.
Solo se ejecuta si la interacción es verdadera ej:
DO 5 TIMES.
ENDDO.
Sentencias de Control.
Se utilizan para terminar el procesamiento de un bucle o un proceso de programa.
CHECK: verifica la condición es verdadera, si es falsa y la sentencia esta dentro del bucle se saltea todas la siguientes y continúa con la siguiente interacción. Fuera del bucle, se saltarán todas las sentencias hasta el final del evento.
CHECK sy-subrc EQ 0.
EXIT: dentro de un bucle saldrá del bucle, dentro de una subrutina saldrá de la misma y fuera de un bucle saldrá del programa.
IF v_clase EQ 'CA'.
EXIT
ENDIF.
CONTINUE: se utiliza dentro de bucle, luego de la ejecución de la sentencia el sistema continua con las siguientes interación.
DO 4 TIMES.
IF sy-subrc EQ 4.
CONTINUE.
ENDIF.
STOP: se finaliza el programa en ejecución pero antes se ejecuta el evento END-OF-SELECCION.
DO 4 TIMES.
IF sy-subrc NE 0.
STOP.
ENDIF.
LEAVE: se finaliza el programa en ejecución pero no se ejecutará en el eveto END-OF-SELECTION.
IF v_clase EQ 'DT'.
LEAVE
ENDIF.
Se debe tener mucho cuidado con la utilización de la sentencias de control CHECK, EXIT, CONTINUE, LEAVE y STOP debidoa estas alteran en forma directa el flujo de control de un programa.