✒️ABAP El control del flujo de datos
ABAP El control del flujo de datos
1. Condicionales
Existen las siguiente 2 formas de declararlas:
* IF-ELSEIF-ENDIF: Hasta 4 niveles
DATA: v_calificacion (1) TYPE c VALUE '9'.
START-OF-SELECTION.
IF v_calificacion >= '9'.
WRITE:/'Aprobado con meritos'.
ELSEIF v_calificacion BETWEEN '6' AND '8'.
WRITE:/'Aprobado'.
ELSE v_calificacion BETWEEN '4' AND '6'.
WRITE:/'Reprobado'.
ENDIF.
* CASE-WHEN-OTHERS-ENDCASE: Más de 5 niveles, modularizando.
CASE v_calificacion.
WHEN '10' OR '9' OR '8'.
WRITE:/'Aprobado con meritos'.
WHEN '7' OR '6'.
WRITE:/'Aprobado'.
WHEN '5' OR '4'.
WRITE:/'Aprobado raspando'.
WHEN OTHERS.
WRITE:/'Reprobado'.
ENCASE.
-OPERADORES LÓGICOS:
° Y → AND ° O → OR
° Igual → = / EQ ° Distinto → <> / NE
° Mayor → > / GT ° Menor → < / LT
° Mayor o igual → <= / GE ° Menor o igual → < / LE
IF sy-subrc EQ 0
2. Bucles
Secuencia de instrucciones que se ejecuta repetidas veces, hasta que la condición deja de cumplirse. Existen las siguiente 3 formas de declararlas:
*LOOP-ENDLOOP: Exclusivamente con tablas internas, recorriendo registro por registro y realizando algún procesamiento al pasar por cada registro. con WHERE se restringe el número de líneas a leer.
LOOP AT ti_salida INTO wa_salida WHERE vkont > 0.
WRITE:/ wa_salida-vertrag,
wa_salida-vkont.
ENDLOOP.
*DO-ENDDO: Trabaja con variables.
DO 5 TIMES.
ADD 1 TO v_vuelta.
WRITE:/ v_vuelta.
ENDO. (En cada iteracion se imprime el contenido en v_vuelta)
*WHILE-ENDWHILE: Trabaja con variables. Poco utilizada.
2. Sentencias de control
Termina el procesamiento de bucles, subrutinas o de todo un programa.
*CHECK: Verifica si la condición es verdadera. Si esta en un bucle se saltará las sentencias y continuara con la siguiente instrucción o iteración, fuera de un bucle acaba el programa o evento el proceso.
CHECK sy_subrc EQ 0.
*EXIT: En bucles o subrutinas saldremos de estas, en otro caso, salimos de programa.
IF sy_subrc EQ 0.
EXIT.
ENDIF.
*CONTINUE: Solo para bucles, para que continúe con la siguiente iteración de bucles.
CLEAR v_vuelta.
DO 5 TIMES.
ADD 1 TO v_vuelta.
IF v_vuelta EQ 5.
WRITE:/ v_vuelta.
ELSE.
CONTINUE.
ENIF.
ENDO.
*STOP: Finaliza el programa. Sí tiene escrito END-OF-SELECTION lo ejecuta antes de finalizar.
IF sy_subrc NE 0.
STOP.
ENDIF.
*LEAVE: Finaliza el programa sin ejecutar END-OF-SELECTION, si esta escrito.
IF sy_subrc NE 0.
LEAVE.
ENDIF.
El uso de las sentencias de control debe ser cuidadoso ya que estas alteran directamente el flujo de control de un programa.
INIZIALIZATION, inicia variables.
START-OF-SELECTION, se usa en todos los programas.
SY-INDEX se actualiza en bucles DO-ENDDO y WHILE-ENDWHILE.
SY-TABIX se actualiza en LOOPAT-ENDLOOP
 
 
 
Sobre el autor
Publicación académica de Linda Carolina Zambrano León, en su ámbito de estudios para la Carrera Consultor ABAP.
Linda Carolina Zambrano León
Profesión: Agente - Peru - Legajo: XR55P
✒️Autor de: 63 Publicaciones Académicas
🎓Egresado del módulo:
Certificación Académica de Linda Zambrano