Ver la Versión Completa : Carga de fichero en tabla interna de SAP
Hola me gustaría saber si hay alguna función que me cargue un fichero en una tabla interna de Sap y como debería definirme esa tabla interna.
Muchas gracias y un cordial saludo.:)
Con la clase CL_GUI_FRONTEND_SERVICES y el Metodo GUI_UPLOAD pasas de un archivo a una tabla interna SAP
La tabla interna debe tener la estructura del archivo, con FILETYPE = 'DAT' si el archovo viene separado por tabulaciones y FILETYPE = 'ASC' si la separacion es la longitud de los campos .
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
EXPORTING
FILENAME = FILENAME
FILETYPE = 'DAT'
* HAS_FIELD_SEPARATOR = SPACE
* HEADER_LENGTH = 0
* DAT_MODE = SPACE
* CODEPAGE = SPACE
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* READ_BY_LINE = 'X'
* IMPORTING
* FILELENGTH =
* HEADER =
CHANGING
DATA_TAB = IT_Tab
EXCEPTIONS
FILE_OPEN_ERROR = 1
FILE_READ_ERROR = 2
NO_BATCH = 3
GUI_REFUSE_FILETRANSFER = 4
INVALID_TYPE = 5
NO_AUTHORITY = 6
UNKNOWN_ERROR = 7
BAD_DATA_FORMAT = 8
HEADER_NOT_ALLOWED = 9
SEPARATOR_NOT_ALLOWED = 10
HEADER_TOO_LONG = 11
UNKNOWN_DP_ERROR = 12
ACCESS_DENIED = 13
DP_OUT_OF_MEMORY = 14
DISK_FULL = 15
DP_TIMEOUT = 16
NOT_SUPPORTED_BY_GUI = 17
ERROR_NO_GUI = 18
others = 19
.
fernando_c
30/01/09, 02:27:17
Podés usar dos funciones: la función WS_UPLOAD es la antigua y la función GUI_UPLOAD es la moderna. WS_UPLOAD carga los datos directamente en una tabla interna mientras que en el caso de GUI_UPLOAD lo que hacer es cargarnos los datos en una variable de tipo STRING, la que después hay que tratar.
WS_UPLOAD:
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_filen "Nombre de Archivo
filetype = 'DAT'
TABLES
data_tab = record. "Tabla Interna
GUI_UPLOAD:
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_filen
filetype = 'DAT'
TABLES
data_tab = record.
Cualquiera de estas dos funciones te sirve para lo que estás intentando de hacer. Espero te sirva. Saludos.
nachosds
17/11/09, 09:53:27
Buenos dias.
Tengo que cambiar la funcion WS_UPLOAD por la nueva, concretamente por el metodo CALL METHOD CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD
Pues bien, a la hora pasarle la tabla DATA_TAB me da error.
Antes con la funcion WS_UPLOAD me funcionaba.
¿Que podria ser?
A DATA_TAB le estoy pasando una tabla interna creada de la manera:
DATA: BEGIN OF it_datos OCCURS 0,
a(40),
b(10),
c(2),
d(5) TYPE c,
error.
DATA: END OF it_datos.
Un saludo y mil gracias!
EDITO PARA AUTORESPONDERME.
Le tenia que pasar it_datos[]. Antes se lo pasaba sin corchetes...
Gracias de todas formas!
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web