PDA

Ver la Versión Completa : Subida de Archivo


alterpeke
14/11/07, 12:26:49
Buenas!

Tengo un problema con la funcion gui_upload:

CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = lv_log
filetype = 'BIN'
TABLES
data_tab = pt_alic

En la tabla pt_alic me carga los datos pero desordenados, el archivo es un texto plano donde los campos estan separados por ";"

Se me ocurrio declarar la pt_alic como una tabla de un solo campo de 255 caracteres y luego procesar cada campo separandolos.
Pero este archivo me va a traer decenas de miles de registros y temo que haciendo eso se me vaya la performance al demonio.

Agradezco cualquier sugerencia.

Saludos.

Alterpeke:)

mysmb2
14/11/07, 16:42:47
hola alterpeke, probaste con setear el parametro HAS_FIELD_SEPARATOR ?

alterpeke
14/11/07, 17:12:38
Si probe y eso es para cuando los campos estan separados por tabuladores.
Mis campos estan separados por ;

Voy a tener que tratarlo manualmente linea por linea. otra cosa no se me ocurre

saludos

mysmb2
14/11/07, 19:06:53
si, tenes razon vas a tener que loopear y remplazar todos los char ; por # de la tabla interna de una linea usando la sentencia replace.
Saludos

alterpeke
15/11/07, 12:09:23
Mira lo que estoy haciendo es tomar la linea y hacer un SPLIT separando los campos por ;

Colocando cada campo en la estructura que luego voy a apendear en la tabla interna para el proceso de esos datos. Me queda algo asi:

loop at pt_upl into ls_upl.

split ls_upl-line at ';' into ls_alic-ze_fepubli
ls_alic-ze_fevigd
ls_alic-ze_fevigh
ls_alic-cuit
ls_alic-ztcontribu
ls_alic-ztalta
ls_alic-zcalicuo
lv_alic.

replace ',' with '.' into lv_alic.
move lv_alic to ls_alic-qsatz.

append ls_alic to pt_alic.

endloop.


Saludos y muchas gracias!!