Estructura SYST

Diferencias entre SY-TABIX vs SY-INDEX vs SY-SUBRC.

Esta es una duda muy común dentro del mundo SAP ABAP, al momento de tratar ciclos de datos en un programa, contamos con una serie de variables de sistema, entre las cuales tenemos SY-INDEX, SY-TABIX y SY_SUBRC.

 Veamos las diferencias entre estas variables:

SY-SUBRC; esta es una variable del sistema que nos indica el resultado de alguna consulta al Diccionario de Datos, los valores más comunes son 0 (cuando el resultado es correcto) y 4 (cuando el resultado es fallido).

Por ejemplo, en una consulta a tablas del Diccionario, el 0 nos indica que se obtuvieron datos en la consulta mientras el 4 nos indica que no se obtuvieron datos.

Otros procesos estándar (creación/tratamiento de materiales, documentos contables, etc.), también arrojan estos resultados, al tratarse de una interacción con sus respectivas tablas del Diccionario.

Otros procesos como los Módulos de Funciones cuentan con otros posibles resultados, normalmente controlados en la sección de excepciones de dichos FM. Así como podemos encontrar el valor 8 al momento de intentar leer/abrir un fichero de un servidor sin éxito.

En resumen, el SY-SUBRC nos indica los resultados de alguna acción, básicamente relacionada con el Diccionario de Datos.

SY-TABIX;  esta variable se actualiza en las iteraciones a Tablas Internas, la variable nos indica la línea actual en que se encuentra un proceso LOOP-ENDLOOPS a una tabla interna, o lo que es lo mismo, que línea de la tabla se está leyendo en un momento dado. Es importante indicar que esta variable solo se actualiza en iteraciones a través de la instrucción LOOP. Bajo esta iteración, la variable SY-INDEX no es actualizada.

SY-INDEX;  a diferencia de la anterior, esta variable, a pesar de también indicar el número de iteraciones, se actualizará únicamente para las iteraciones del tipo DO-ENDDO y del tipo WHILE-ENDWHILE.

Es decir, no se actualizará para un proceso LOOP, así como el SY-TABIX no nos servirá para los procesos DO y WHILE.

En resumen, no se trata de cuál variable conviene mejor usar, sino en qué tipo de iteración nos encontramos para utilizar el campo/variable correspondiente.

En cualquier caso, ya sea SY-TABIX o SY-INDEX, te dirá en qué número del ciclo te encuentras, mientras SY-SUBRC te dará el resultado de consultas al Diccionario de Datos.

¿Te ha sido de utilidad este artículo? Házmelo saber con tus comentarios, y suscríbete a mi Comunidad para recibir mi curso gratuito “AprendeABAP en 10 lecciones”, además de contenidos exclusivos  sobre el mundo ABAP.

richard-avatar-SM-126x159

Richard Rey

“Programando tu Exito”

Opt In Image
Te has preguntado que se necesita para ser un Consultor de Éxito?
Te gustaría aprender los 7 Pasos para triunfar en tu carrera como Consultor ABAP?

Deja tus datos aquí abajo y formarás parte de mi comunidad exclusiva, además de recibir mi curso de regalo "Los 7 Pasos para ser un Consultor de Éxito".

Mas información AQUÍ.

 

PD: Odio el SPAM. No compartire tus datos con nadie.

Si te gusta, compártelo! ...Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Email this to someonePrint this page

Comentarios