PDA

Ver la Versión Completa : Para que sirven estas variables SY-SUBRC y SY-TABIX


cidbebop
17/05/11, 20:36:17
Buenas, alguien me podría explicar detalladamente para que sirven estas variables y cuando debo usarlas?:
- SY-SUBRC
- SY-TABIX

de antemano muchas gracias :) .

SAPING
17/05/11, 20:49:32
Buenas, alguien me podría explicar detalladamente para que sirven estas variables y cuando debo usarlas?:
- SY-SUBRC
- SY-TABIX

de antemano muchas gracias :) .

Hola.
SY-TABIX guarda el numero de registro en el que estas posicionado. Por ejemplo, cuando haces un loop, SY-TABIX guarda el numero del ultimo registro que lee.
ej.:
loop at it_table.
* 1° lectura SY-TABIX = 1
* 2° lectura SY-TABIX = 2
*** Asi sucesivamente
endloop.

el SY-SUBRC debes usarlo SIEMPRE luego de un SELECT, un READ TABLE o luego de la ejecucion de una funcion. Esta variable guarda el status de la ejecucion.
Por ejemplo, realizas un select a la mara para buscar XXXX material. Si el select encuentra ese registro el SY-SUBRC devuelve 0 (cero), caso contrario N (un numero distinto a cero).
En un READ TABLE tiene la misma finalidad. Realizas una lectura a una tabla interna de tu programa, y si encuentra el registro devuelve 0, de lo contrario N.
En el caso de una funcion el SY devuelto sera de acuerdo al tipo de error sucedido detallado en la linea de EXCEPTIONS (la cual siempre debes tener en cuenta para poder trabajar en caso de error).

Espero te haya servido.
Saludos.

cidbebop
17/05/11, 21:21:30
Hola.
SY-TABIX guarda el numero de registro en el que estas posicionado. Por ejemplo, cuando haces un loop, SY-TABIX guarda el numero del ultimo registro que lee.
ej.:
loop at it_table.
* 1° lectura SY-TABIX = 1
* 2° lectura SY-TABIX = 2
*** Asi sucesivamente
endloop.

el SY-SUBRC debes usarlo SIEMPRE luego de un SELECT, un READ TABLE o luego de la ejecucion de una funcion. Esta variable guarda el status de la ejecucion.
Por ejemplo, realizas un select a la mara para buscar XXXX material. Si el select encuentra ese registro el SY-SUBRC devuelve 0 (cero), caso contrario N (un numero distinto a cero).
En un READ TABLE tiene la misma finalidad. Realizas una lectura a una tabla interna de tu programa, y si encuentra el registro devuelve 0, de lo contrario N.
En el caso de una funcion el SY devuelto sera de acuerdo al tipo de error sucedido detallado en la linea de EXCEPTIONS (la cual siempre debes tener en cuenta para poder trabajar en caso de error).

Espero te haya servido.
Saludos.

Hola, muchas gracias por tu respuesta, ahora ya despejé mis dudas sobre este tema. :) saludos¡¡