Sentencias ABAP elementales Parte 2 (Loops, campos de sistema y código retorno)

Sentencias ABAP elementales Parte 2 (Loops, campos de sistema y código retorno).

En esta lección vamos a complementar el post anterior  sentencias ABAP elecmentales Parte 1 y a continuar repasando la base de la programación ABAP con las sentencias ABAP esenciales, como cualquier lenguaje de programación el uso de Loops, campos del sistema y códigos de retorno se hace imprescindible. Hay que tener en cuenta las singularidades de este lenguaje a la hora del uso de estas instrucciones.

Loops

Hasta el momento existen cuatro construcciones de loop en ABAP. Si bien esto es así y hay que conocer las cuatro por si nos encontramos con cualquiera de ellas, a lo largo de un programa, también conviene saber en qué caso utilizar cada para que la ejecución del programa sea lo más eficiente posible.

Además, hay algún tipo Loops de ABAP está en desuso ya que es poco eficiente con los recursos del sistema y que probablemente la persona que tiene que aprobar tu código fuente ABAP en cuanto lo vea se eche las manos a la cabeza y te lo eche el código para atrás.

Dentro de los Loops es muy importante tener claro los campos del sistema, tendrán sentido solo si se consultan dentro de un loop. En los loops anidados, sy-index por ejemplo contiene siempre el número de la iteración de loop del loop en el que está situado.

En los loops DO y WHILE, el campo de sistema sy-index contiene el número de iteración de loop actual. Por ello, solo debe consultar este campo de sistema dentro de un loop.

Imagen ejemplo loops ABAP

 

Construcciones de loop:

 

  • Loops incondicionales y controlados por índice

El bloque de sentencia entre DO y ENDDO se ejecuta de forma continua hasta que se abandona el loop mediante sentencias de terminación como EXIT. Especifique el número máximo de transferencias de loop; de lo contrario, puede obtener un loop interminable.

 

  • Loops controlados por la cabecera

El bloque de sentencia entre WHILE y ENDWHILE se ejecuta de forma continua hasta que no se cumpla la condición especificada. Siempre se verifica la condición antes de ejecutar el bloque de sentencias.

 

  • Loops de lectura.

El loop SELECT lee varias entradas de una tabla de bases de datos sucesivamente. En una tabla interna (variable de tabla en el programa), la misma función de lectura se implementa con el LOOP. Sentencia poco eficiente que hay que evitar, sobretodo cuando se trata de la lectura de tablas  con muchos registros que se actualizan frecuentemente.

 

Campos de sistema.

Campos de sistema más habituales. Significado
sy-mandt

sy-uname

sy-langu

Mandante de trabajo

Nombre de inicio de sesión del usuario

Idioma de inicio de sesión del usuario

sy-datum

sy-uzeit

Fecha local del sistema ABAP

Hora local del sistema ABAP

sy-tcode

sy-repid

Código de transacción actual

Nombre del programa ABAP actual

sy-index Contador de loops DO y WHILE

 

En el código fuente ABAP, puede usar varios objetos de datos sin declararlos explícitamente antes (por ejemplo, sy-datum y sy-index). El sistema de tiempo de ejecución utiliza estos campos de sistema para suministrar información al programa de aplicación acerca del status de sistema real.

 

Para acceder a los campos de sistema de los programas, utiliza el acceso de solo lectura. El acceso de escritura puede causar pérdidas de información importante de algunas partes del programa que requieren esta información. Además, el sistema de tiempo de ejecución puede modificar nuevamente el contenido del campo. Por ello, SAP recomienda solo leer estos campos.

 

Código de retorno de una sentencia ABAP.

Imagen ejemplo código retorno ABAP

 

Uno de los campos de sistema más importantes es el campo sy-subrc. Con muchas sentencias, el sistema de tiempo de ejecución ABAP suministra este campo con el código de retorno correspondiente para indicar si la sentencia se ha ejecutado correctamente. El valor cero significa que la secuencia se ha ejecutado correctamente. Lea la documentación de palabras clave de las sentencias correspondientes para averiguar si se fija este valor de retorno y cómo se lleva a cabo en casos individuales.

 

Resumen, estas son algunas de las sentencias ABAP esenciales, las que hemos visto se encuentran dentro de la programación estructurada con elementales desarrollo SAP/ABAP y que tienes que tener muy en cuenta antes de sentarte a programar.

Esto ha sido todo por hoy, próximamenteeee, más!! 😀

Publicado por José Jiménez