|
#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
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 . |
#3
|
|||
|
|||
recibido
Gracias por tu ayuda
|
#4
|
|||
|
|||
Funciones para ficheros
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. |
#5
|
|||
|
|||
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! Úlima edición por nachosds fecha: 17/11/09 a las 10:02:12. |
Herramientas | Buscar en Tema |
Desplegado | |
|
|