Ver la Versión Completa : REFRESH a varias tablas
tere90210
10/10/07, 20:52:48
:confused: Buen día:
Quisiera hacer un REFRESH a 45 o más tablas internas con una sola sentencia, mas no quisiera ocupar tantas líneas de código.
Intenté algo con los FIELD-SYMBOLS pero no sé cómo aplicarlo en este caso.
FIELD-SYMBOLS <fs> TYPE ANY. -> Declaro el FieldSymbol
ASSIGN lv_tabla TO <fs>. -> lv_tabla, contiene el nombre de la tabla a procesar (tan sólo el nombre).
REFRESH <fs>. -> Me dirá que <fs> no es una tabla interna.
¿Alguien sabe algún otro método que pudiera utilizar?
De antemano, gracias.
fede_82
10/10/07, 21:33:03
Buen dia Tere,
No se si todavia necesitaras esto o ya lo habras solucionado de otra manera, pero igual trataré de ayudarte.
Entiendo que lv_tabla es una variable q contiene el nombre de la tabla, y asumo q las tablas se llaman, por ej: tabla1, tabla2 ... tabla45
Creo que deberias hacer algo como lo siguiente
-------
data l_cont type i.
data <fs> type any.
data l_nom_tabla(10) type c.
do 45 times. " Se repite la cantidad de veces segun tablas que necesites
add 1 to l_cont. " contador, será el numero de tabla.
concatenate lv_tabla l_cont into l_nom_tabla.
* Asi l_nom_tabla ira teniendo el nombre de cada una de las tablas.
* En este caso lv_tabla = 'tabla' => el FS apuntara a tabla1 .... tabla45
assign (lv_tabla) to <fs>.
if sy-subrc = 0.
refresh <fs>.
unassign <fs>.
endif.
enddo.
clear l_cont.
--------------------
Siempre poner un if sy-subrc = 0 luego de un assign para evitar DUMPs si no pudo ser asignado el FS por algun motivo.
Espero q te sirva,
saludos!
-Fede
tere90210
10/10/07, 22:19:30
Bueno, como indiqué, al hacer el REFRESH <fs>, me dice que <fs> no es una tabla interna.
Resulta que no tuve qué hacer el REFRESH para tantas tablas. Tan sólo para 4 y eso no afecta mucho el código.
Muchas gracias Fede_82.
¿Puedo saber tu correo electrónico?:)
SAProly
11/10/07, 14:40:43
Buenos dias :D, fede_82 tu solución me parecio muy buena, lo probé y me apareció el mismo error "<fs> no es una tabla interna", lo que hice fue cambiar:
data <fs> type any.
Por
data <fs> type any table.
Y me funciona bien :D .
fede_82
11/10/07, 18:48:57
Eso no lo sabía, gracias SAPRoly!
Tere_90210, me puedes enviar un mensaje privado si quieres.
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web