GUI_UPLOAD
Carga un fichero del PC del usuario en una tabla interna.
- Transacción
SE37- Grupo
- Subidas y bajadas de ficheros
- Actualizado
- 21 de octubre de 2026
Para qué sirve
GUI_UPLOAD lee un fichero del ordenador del usuario (el que ejecuta SAP GUI) y vuelca su contenido en una tabla interna. Es la forma clásica de importar un CSV o un TXT desde un report en diálogo.
Con FILETYPE = 'ASC' lee el fichero como texto, una línea por registro; con 'BIN' lo lee como binario. Si el fichero tiene columnas separadas por tabuladores y HAS_FIELD_SEPARATOR = 'X', reparte cada línea en los campos de la estructura de la tabla.
Solo funciona en diálogo con SAP GUI: en un job de fondo no hay ordenador de usuario y la función devuelve la excepción NO_BATCH. Para ficheros del servidor de aplicación se usa OPEN DATASET.
Sigue siendo válida, pero en código orientado a objetos se usa el método equivalente CL_GUI_FRONTEND_SERVICES=>GUI_UPLOAD, que tiene los mismos parámetros.
Parámetros
Importing
Lo que recibe la función. En CALL FUNCTION se pasan tras EXPORTING.
| Parámetro | Tipo | Descripción |
|---|---|---|
FILENAMEObligatorio | STRING | Ruta completa del fichero en el PC, por ejemplo C:\datos\clientes.csv. |
FILETYPE | CHAR10 | 'ASC' para texto (por defecto) o 'BIN' para binario.Por defecto: 'ASC' |
HAS_FIELD_SEPARATOR | CHAR01 | 'X' si las columnas están separadas por tabuladores y se deben repartir en los campos de la estructura.Por defecto: SPACE |
HEADER_LENGTH | I | Número de bytes de cabecera que se leen aparte (solo con ficheros binarios).Por defecto: 0 |
READ_BY_LINE | CHAR01 | 'X' para que cada línea del fichero sea una línea de la tabla.Por defecto: 'X' |
DAT_MODE | CHAR01 | 'X' para leer números y fechas en formato interno (el del modo DAT antiguo).Por defecto: SPACE |
CODEPAGE | ABAP_ENCODING | Página de códigos del fichero, por ejemplo '4110' para UTF-8.Por defecto: SPACE |
IGNORE_CERR | ABAP_BOOL | Ignora los errores de conversión de caracteres.Por defecto: ABAP_TRUE |
REPLACEMENT | ABAP_REPL | Carácter que sustituye a los que no se pueden convertir.Por defecto: '#' |
Exporting
Lo que devuelve. En CALL FUNCTION se recogen tras IMPORTING.
| Parámetro | Tipo | Descripción |
|---|---|---|
FILELENGTH | I | Tamaño del fichero leído, en bytes. |
HEADER | XSTRING | Cabecera leída cuando se indica HEADER_LENGTH. |
Tables
Tablas internas que se pasan o se devuelven (TABLES).
| Parámetro | Tipo | Descripción |
|---|---|---|
DATA_TABObligatorio | Tabla estándar | Tabla interna que recibe el contenido del fichero. |
Excepciones
Errores que devuelve en sy-subrc, en el bloque EXCEPTIONS.
| Excepción | Cuándo se produce |
|---|---|
FILE_OPEN_ERROR | No se puede abrir el fichero: la ruta no existe o está en uso. |
FILE_READ_ERROR | Error al leer el fichero. |
NO_BATCH | Se ha llamado desde un job de fondo, donde no hay SAP GUI. |
GUI_REFUSE_FILETRANSFER | SAP GUI no permite la transferencia (configuración de seguridad). |
INVALID_TYPE | FILETYPE tiene un valor no válido. |
NO_AUTHORITY | El usuario no tiene autorización para acceder al fichero. |
BAD_DATA_FORMAT | Los datos no encajan con la estructura de la tabla. |
ACCESS_DENIED | El sistema operativo deniega el acceso al fichero. |
UNKNOWN_ERROR | Error no clasificado. |
Ejemplo
TYPES: BEGIN OF ty_cliente,
kunnr TYPE kunnr,
name1 TYPE name1_gp,
ort01 TYPE ort01_gp,
END OF ty_cliente.
DATA lt_clientes TYPE STANDARD TABLE OF ty_cliente WITH EMPTY KEY.
PARAMETERS p_fich TYPE string LOWER CASE DEFAULT 'C:\temp\clientes.txt'.
START-OF-SELECTION.
CALL FUNCTION 'GUI_UPLOAD'
EXPORTING
filename = p_fich
filetype = 'ASC'
has_field_separator = 'X' " columnas separadas por tabulador
codepage = '4110' " UTF-8
TABLES
data_tab = lt_clientes
EXCEPTIONS
file_open_error = 1
file_read_error = 2
no_batch = 3
bad_data_format = 4
OTHERS = 5.
IF sy-subrc <> 0.
MESSAGE |No se ha podido leer el fichero (error { sy-subrc })| TYPE 'E'.
ENDIF.
cl_demo_output=>display( lt_clientes ).Con la clase CL_GUI_FRONTEND_SERVICES
" Mismo resultado con la clase de servicios del PC (código orientado a objetos)
cl_gui_frontend_services=>gui_upload(
EXPORTING
filename = p_fich
filetype = 'ASC'
has_field_separator = abap_true
codepage = '4110'
CHANGING
data_tab = lt_clientes
EXCEPTIONS
OTHERS = 1 ).
IF sy-subrc <> 0.
MESSAGE 'No se ha podido leer el fichero' TYPE 'E'.
ENDIF.Errores y excepciones habituales
- NO_BATCH: el programa se ha lanzado en fondo. GUI_UPLOAD solo funciona en diálogo; en un job lee el fichero del servidor con OPEN DATASET.
- BAD_DATA_FORMAT: una columna no cabe en su campo (por ejemplo, texto en un campo numérico). Usa una estructura con todos los campos de tipo texto y convierte después.
- Acentos y eñes mal leídos: el fichero está en UTF-8 y no se ha indicado CODEPAGE = '4110' (o al revés, está en ANSI y se lee como UTF-8).
- FILE_OPEN_ERROR: ruta mal escrita o fichero abierto en Excel. Cierra el fichero y comprueba la ruta.
Relacionadas
Funciones relacionadas
GUI_DOWNLOADWS_UPLOADALSM_EXCEL_TO_INTERNAL_TABLEF4_DXFILENAME_TOPRECURSION
Más en Subidas y bajadas de ficheros
WS_DOWNLOADTABLE_EXPORT_TO_MSACCESSWS_EXCELGUI_DELETE_FILEEPS_DELETE_FILEEPS_GET_DIRECTORY_LISTING
Transacciones y tablas
SE37CG3ZCG3Y
En abap.es
¿Dudas con esta función?
Pregunta en el foro de abap.es: la comunidad lleva años resolviendo dudas de ABAP en español.
Actualizado: 21 de octubre de 2026