ABAP: Mover fichero de carpeta

En el siguiente ejemplo veremos como mover un fichero de una carpeta, este ejemplo serviría tanto para ficheros locales como ficheros que estén el el servidor.

Utilizaremos la función GUI_UPLOAD para cargar el fichero en una tabla interna, OPEN DATASET para crear el fichero el la nueva ruta y GUI_DELETE_FILE para borrar el fichero de la ruta inicial.

 

Leer fichero con GUI_UPLOAD

Con la función GUI_UPLOAD leeremos el fichero y añadiremos el fichero en una tabla interna.

  • Filename: Ruta y nombre del fichero (en este caso será C:\SAP\fichero_inicio.txt)
  • Filetype: Tipo de fichero que queremos leer (En este caso al ser .txt utilizaremos el tipo DAT)

(*) Crearemos el tipo T_RECEPCION que se utilizará para crear la tabla interna LI_RECEPCION donde se almacenará el contenido del fichero

TYPES: BEGIN OF t_recepcion,
         line TYPE c,
       END OF t_recepcion.

DATA: lv_filename TYPE string VALUE 'C:\SAP\fichero_inicio.txt',
      li_recepcion TYPE STANDARD TABLE OF t_recepcion.

CALL FUNCTION 'GUI_UPLOAD'
   EXPORTING
     filename                = lv_ilename
     filetype                = 'DAT'
   TABLES
     data_tab                = li_recepcion
   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
     OTHERS                  = 17.

IF sy-subrc = 0.
ENDIF.

(más…)