#1
|
|||
|
|||
Funcion q coja fichero del servidor y lo devuelva en itab
Hola, necesito saber si alguien conoce alguna funcion que coja un fichero del servidor (no de local) y lo vuelque todo su contenido en una tabla interna.
CALL FUNCTION 'GUI_UPLOAD' EXPORTING FILENAME = l_direccion TABLES DATA_TAB = i_fileIn . Esta funcion vale pero solo para ficheros que estan en local, pero en el servidor. Si alquien lo sabe por favor que me lo diga, lo necesito. |
#2
|
||||
|
||||
Trata con Open DataSet
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#3
|
||||
|
||||
Esta funcion funciona en fondo, implementa el uso de Open Data Set,
EPS_GET_DIRECTORY_LISTING
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> Úlima edición por DCErick fecha: 29/03/07 a las 00:22:13. |
#4
|
||||
|
||||
Hola, para levantar un archivo del servidor puedes usar el siguiente código:
perform obtener_archivos_directorio using v_ruta changing t_texto[]. *&---------------------------------------------------------------------* *& Form obtener_archivos_directorio *&---------------------------------------------------------------------* * Se encarga de obtener la lista (nombres) de archivos que se * encuentran en la ruta de archivo especificada *----------------------------------------------------------------------* form obtener_archivos_directorio using p_dirname type c changing p_archivos like t_fichero[]. data: lw_searchpoints type ty_searchpoints, errno(3) type c, errmsg(40) type c, name(75) type c, w_archivo like t_fichero. clear lw_searchpoints. refresh p_archivos. concatenate p_dirname '/' into lw_searchpoints-dirname. lw_searchpoints-sp_name = '*'. call 'C_DIR_READ_FINISH' " just to be sure id 'ERRNO' field errno id 'ERRMSG' field errmsg. clear: errno, errmsg. call 'C_DIR_READ_START' id 'DIR' field lw_searchpoints-dirname id 'FILE' field lw_searchpoints-sp_name id 'ERRNO' field errno id 'ERRMSG' field errmsg. if sy-subrc <> 0. exit. endif. do. call 'C_DIR_READ_NEXT' id 'NAME' field name. if sy-subrc = 0. clear w_archivo. w_archivo-texto = name. append w_archivo to p_archivos. else. exit. endif. enddo. close dataset lw_searchpoints-dirname. endform. "obtener_archivos_directorio * Recorre cada uno de los archivos cargados del servidor y almacena la data loop at t_texto. concatenate v_ruta_ori '/' t_texto-texto into w_arch. perform procesar_archivo using w_arch changing itab_ops[]. endloop. *&---------------------------------------------------------------------* *& Form procesar archivo *&---------------------------------------------------------------------* * Se encarga de leer un archivo de una ruta para procesarlo y * obtener los datos que contiene para almacenarlo en una estructura *----------------------------------------------------------------------* form procesar_archivo using p_filename type c changing p_fichero like t_fichero[]. data lw_fichero like t_fichero. refresh p_fichero. open dataset p_filename for input in text mode encoding default. if sy-subrc = 0. do. read dataset p_filename into lw_fichero-texto. if sy-subrc <> 0. exit. endif. append lw_fichero to p_fichero. enddo. close dataset p_filename. clear lw_fichero. else. message e666 with 'OPEN DATASET:' 'No se pudo abrir fichero' p_filename. endif. endform. "procesar_archivo Luego, con un split pones la data en el campo respectivo de tu tabla interna. Espero que te sirva de ayuda
__________________
Saludos, Claudia V. |
#5
|
||||
|
||||
Creo que es mejor usar la funcion EPS_GET_DIRECTORY_LISTING,
Si ya esta hecho por sap, no veo por que escribir una funcion para hacerlo. El codigo que pone Claudia es un estracto de la funcion de SAP, agregandole un poco mas de funcionalidad para poner la ruta completa a los nombres de archivo encontrados. Solo como punto de vista.
__________________
------------------- ¿Dudas para descargar manuales? Ver este tema -> |
#6
|
|||
|
|||
Hola !! se puede usar el open dataset para un fichero que cojo de local ?? necesito subir un fichero de texto a una tabla interna y puede q esté en local o puede q esté en el servidor..
gracias !!! |
Herramientas | Buscar en Tema |
Desplegado | |
|
|