MUNDOSAP

MUNDOSAP (foro/index.php)
-   Programación ABAP IV (foro/forumdisplay.php?f=4)
-   -   Carga de fichero en tabla interna de SAP (foro/showthread.php?t=27361)

oieraz 15/01/09 08:36:18

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.:)

Mike 15/01/09 11:15:16

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
.

oieraz 15/01/09 11:54:45

recibido
 
Gracias por tu ayuda

fernando_c 30/01/09 02:27:17

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.

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!


Husos Horarios son GMT. La hora en este momento es 00:12:22.

www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web