🚀PROMO #PLANCARRERA2024 - 🔥Bonificaciones, Precios Congelados y Cuotas

 X 

✒️ABAP El control del flujo de datos

ABAP El control del flujo de datos

ABAP El control del flujo de datos

ABAP Condiciones

Abap condiciones tal como sucede en otros lenguajes en ABAP contamos con instrucciones para trabajar con Condiciones.

Existen dos formas de representar condiciones.

La más comúnmente utilizada es mediante la sentencia IF…ELSE…ENDIF en todas sus variantes tal como vemos a continuación:

IF <condicion>.
ENDIF.

IF <condicion>.
ELSE.
ENDIF.

IF <condicion_1>.
ELSEIF <condicion_2>.
ENDIF.

Otra forma de trabajar con condiciones es a través de la sentencia CASE…ENDCASEtal como vemos a continuación:

CASE <campo>.

WHEN <valor1>.
WHEN <valor2>.
….
WHEN <others>.
….
ENDCASE.

En un bucle, un bloque de instrucciones se ejecuta varias veces en la serie. Existen cuatro tipos de bucles en ABAP:

Los bucles sentencia DO (principalmente para los bucles incondicionales)

Los bucles WHILE (principalmente para los bucles condicionales)

Los bucles instrucción SELECT (bucle a través de los datos de base de datos)

Los bucles sentencia LOOP (bucle en las tablas internas)

Bucle DO - ENDDO “Bucle incondicional”

Ejecución de sentencias indefinidamente hasta que se procese la sentencia EXIT, STOP o REJECT.

Sintaxis:

DO [ TIMES ] [ VARYING FROM NEXT ]

ENDDO.

La sentencia DO sin cláusulas ejecuta el bloque de sentencias indefinidamente, o hasta que se procese una sentencia EXIT, STOP o REJECT. Para limitar el número de pasos de un bucle se puede utilizar la opción TIMES. Puede ser un literal o una variable. Si es 0 o negativo, el sistema no procesará el bucle.

La cláusula ENDDO es obligatoria (marca el fin del bloque de sentencias). La variable SY-INDEX contiene el número de veces que el bucle ha sido ejecutado.

Utilizando la opción VARYING se pueden ir asignando valores a una variable a partir de un conjunto de campos del mismo tipo y longitud de memoria por cada paso de bucle. En una sentencia DO se pueden utilizar varias opciones VARYING.

Ejemplo:

DO.

WRITE: / SY-INDEX – Inicio:’, (3) SY-INDEX.

IF SY-INDEX = 10.

EXIT.

ENDIF.

WRITE: ‘Fin:’, (3) SY-INDEX.

ENDDO.

Bucle WHILE – ENDWHILE “Bucles condicional”

Se utiliza para repetir un bloque de instrucciones durante el tiempo que una determinada condición es verdadera, utilice la siguiente estructura de control:

Sintaxis:

WHILE log_exp o [ VARY FROM NEXT ].

[statemaent_block]

ENDWHILE.

log_exp puede ser cualquier expresión lógica. El bloque de instrucciones entre WHILE y ENDWHILE se repite mientras la condición es verdadera o hasta que una declaración de terminación, tales como cierre o detenga ocurre. El campo del sistema sy-index contiene el número de bucle pasa.

El sistema procesa el bloque de sentencias hasta que se cumpla la condición o hasta que el sistema procesa una sentencia EXIT, STOP o REJECT. Para condición se puede utilizar cualquier expresión lógica. El campo del sistema SY-INDEX contiene el número de veces que el bucle ha sido ejecutado. El sistema permite anidar sentencias WHILE, así como combinarlas con otras sentencias de bucle.

La opción VARY actúa de la misma forma en que actúa la opción VARYING en la sentencia DO. Al igual en la sentencia DO, se puede utilizar más de una opción VARY en una sentencia WHILE.

Ejemplo:

DATA: SEARCH_ME TYPE I,

MIN TYPE I VALUE 0,

MAX TYPE I VALUE 1000,

TRIES TYPE I,

NUMBER TYPE I.

SEARCH_ME = 23.

WHILE NUMBER SEARCH_ME.

ADD 1 TO TRIES.

NUMBER = ( MIN + MAX ) / 2.

IF NUMBER > SEARCH_ME.

MAX = NUMBER – 1.

ELSE.

MIN = NUMBER + 1.

ENDIF.

ENDWHILE.

Las sentencias de control

Su usaran para terminar el procesamiento de un bucle o proceso.

  • CHECK .
  • EXIT.
  • STOP.
  • LEAVE.

Efecto CHECK evalua la expresión lógica. Si esta es verdadera, el proceso continua con la siguiente sentencia.

CHECK con falso termina el ciclo actual sin procesar las instrucciones antes de marcado el fin del ciclo y el proceso vuelve a la siguiente vuelta, si es que hay otra.

Forma básica EXIT.

Efecto - Dentro de ciclos:
Termina el proceso iterativo (DO, WHILE, LOOP, SELECT).
- Dentro de rutinas:
Abandona la rutina sin terminarla (FORM, MODULE, FUNCTION, TOP-OF-PAGE, END-OF-PAGE).

CONTINUE termina el ciclo actual sin procesar las instrucciones antes de marcado el fin del ciclo y el proceso vuelve a la siguiente vuelta, si es que hay otra.

La instrucción : STOP.

Con STOP finalizaremos el report (programa) en ejecución, pero antes ejecutaremos el evento END-OF-SELECTION

La instrucción : LEAVE.

Con LEAVE finalizaremos el report (programa) en ejecución, sin ejecutar el evento END-OF-SELECTION.


 

 

 


Sobre el autor

Publicación académica de Cesar Armando Gutierrez Gomez, en su ámbito de estudios para la Carrera Consultor ABAP.

SAP Master


Cesar Armando Gutierrez Gomez

Profesión: Ingeniero en Sistemas y Redes Infor - El Salvador - Legajo: KQ36J

✒️Autor de: 89 Publicaciones Académicas

🎓Egresado de los módulos:

Disponibilidad Laboral: FullTime

Certificación Académica de Cesar Gutierrez

✒️+Comunidad Académica CVOSOFT

Continúe aprendiendo sobre el tema "El control del flujo de datos" de la mano de nuestros alumnos.

SAP Master

CONTROL DE FLUJO DE DATOS SENTENCIA IF-ENDIF SENTENCIA IF-ELSEIF-ELSE-ENDIF SENTENCIA CASE OPERADORES LOGICOS BUCLES LOOP-ENDLOOP SENTENCIAS DE CONTROL CHECK EXIT CONTINUE STOP LEAVE NOTA.CUIDADO CON EL USO DE ESTAS SENTENCIAS YA QUE AFECTAN DIRECTAMENTE EL FLUJO DE UN PROGRAMA ABAP.

Acceder a esta publicación

Creado y Compartido por: Rainer Diaz

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

Debemos tener 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 ABAB

Acceder a esta publicación

Creado y Compartido por: Eli Joel Zorrilla Zorrilla

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Control de Flujo de Datos. Condiciones: IF / ENDIF CASE / ENDCASE Bucles: LOOP / ENDLOOP DO / END-DO Sentencias de Control: CHECK SY-SUBRC, Muestra resultados y/o equivalencia

Acceder a esta publicación

Creado y Compartido por: Noe Rivera

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP SemiSenior

Control de flujo de datos: IF-ENDIF, Cse-EndCase. Bucles: Loop-Endloop, Do-Endloop. Sentencias de control: Para terminar el procesamiento de un bucle, de un proceso ó de un programa. Check: Si la sentencia es falsa, y la sentencia esta dentro de un bucle, se salteará todas las sentencias y continuará con la siguiente iteración. Fuera de un bucle se saltará toda las sentencias hasta el final de del evento o del programa en proceso. Exit: dentro de un bucle, saldrá del bucle, dentro de una subrutina saldrá de la subrutina y fuera de un bucle saldrá del programa Cintunye: Se utiliza dentro de un bucle. Luego de la ejecución de la sentencia e sistema continua con la siguiente...

Acceder a esta publicación

Creado y Compartido por: Roxana Solis Ramirez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Las sentencias de Control de Flujo de programa son iguales en forma de operacion a las sentencias en otros lenguajes de programacion, lo importante es la mnemotecnia. Lo importante es aprender la mnemotecnia para poder emplearlas correctamente

Acceder a esta publicación

Creado y Compartido por: Eduardo Vargas

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

UNIDAD 2: DECLARACIÓN Y PROCESAMIENTO DATOS LECCIÓN 6:CONTROL FLUJO DE DATOS 1.- CONDICIONES a) IF ELSEIF ELSE ENDIF. b)Si en cada condición, se chequea que la variable sea igual a un valor determinado y las condiciones son muchas es aconsejable usar CASE WHEN WHEN OTHERS ENDCASE En ambas Se utilizan los operadores lógicos (AND OR EQ NE GT LT GE LE) 2.- BUCLES LOOP AT itab WHERE (uso es buena practica) ENDLOOP DO n TIMES ENDDO 3.- SENTENCIAS DE CONTROL CHECK EXIT (saldrá del bucle y/o saldrá del pprog. dependiendo) CONTINUE (dentro del bucle continua con la sgte.iteracion) STOP (antes de End Of Selection) LEAVE (finaliza y no ejecuta End-Of-Selection) Nota.- Debemos tener cuidado en el uso de estas...

Acceder a esta publicación

Creado y Compartido por: Hernan Cabezas

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

el flujo de datos debe de ser continuo.

Acceder a esta publicación

Creado y Compartido por: Allan Gomez

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

- Control del Flujo de Datos - Condiciones 1.- Utilizando IF-ENDIF: IF <CONDICION>. DECLARACIONES. ELSEIF <CONDICION>. DECLARACIONES. ELSE. DECLARACIONES. EDNIF. 2.- Mediante CASE-ENDCASE: CASE CAMPO. WHEN VALOR1. DECLARACIONES. WHEN VALOR2. DECLARACIONES. WHEN OTHERS. DECLARACIONES. ENDCASE. * Operadores lógicos: Y -----------------------> AND O ----------------------> OR Igual ------------------> = , EQ Distinto --------------> <> , NE Mayor...

Acceder a esta publicación

Creado y Compartido por: Sandra Erika Bernabe Abreu

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Senior

Operadores logicos: Y -----> AND O -----> OR IGUAL -----> ,EQ DISTINTO ----> <> ,NE MAYOR ----> > , GT MENOR -----> < , LT MAYOR O IGUAL ------> >= , GE MENOR O IGUAL ------> <= , LE La utilizacion de la clausula WHERE siempre y cuando sea posible, es considerada una buena practica de programacion. Sentencias de control: se utilizan para terminar el procesamiento de un bucle, de un proceso o programa. las mismas son: Check: verifica si la condicion es verdadera, si la condicion es falsa y la sentencia esta dentro de un bucl, se salteara todas las sentencias siguientes que esten dentro del bucle y continuara con la siguiente iteracion. Exit:dentro de un bucle saldra del bucle, dentro de una subrutina...

Acceder a esta publicación

Creado y Compartido por: Cristian Merlo

*** CVOSOFT - Nuestros Alumnos - Nuestro Mayor Orgullo como Academia ***

SAP Master

Control de flujo de datos. Condiciones: IF <condicion>. Declaraciones. elseif <condición>. declaraciones. else. declaraciones. endif CASE- ENDCASE CASE campo. WHEN VALOR1. DECLARACIONES WHEN VALOR2 DECLARACIONES. WHEN OTHERS. DECLARACIONES. ENDCASE OPERADORES LOGICOS: = , <>, <, >, >=, <= BUCLES: LOOP A TABLA. DECLARACIONES. ENDLOOP DO n TIMES DECLARACIONES ENDDO SENTENCIAS DE CONTROL: CHECK: verifica si la condición es verdadera, si es falsa se saltara todas las sentencias siguientes y continuara la siguiente interacción, fuera del bucle ira al final del programa CHECK SY-SUBRC EQ 0. EXIT: Saldra del bucle,y fuera del bucle saldra del programa IF v_clase...

Acceder a esta publicación

Creado y Compartido por: Maria Ysabel Colina De Magdaleno

 


 

👌Genial!, estos fueron los últimos artículos sobre más de 79.000 publicaciones académicas abiertas, libres y gratuitas compartidas con la comunidad, para acceder a ellas le dejamos el enlace a CVOPEN ACADEMY.

Buscador de Publicaciones:

 


 

No sea Juan... Solo podrá llegar alto si realiza su formación con los mejores!