ABAP: Obtener atributos de un fichero

Con la función estandar de SAP EPS_GET_FILE_ATTRIBUTES podremos obtener los datos de un fichero, para ello pasaremos la ruta y el nombre del fichero:

Exporting
  • File_name: Nombre del fichero
  • Dir_name: Ruta donde se encuentra el fichero
Importing
  • File_size: Tamaño del fichero
  • File_owner: Usuario que creo el fichero
  • File_mode: Modo de fichero
  • File_type: Typo de fichero
  • File_mtime: Fecha de creación/ultima modifiación del fichero

 

Función

DATA: lv_file_name TYPE epsf-epsfilnam,
      lv_ruta_salida60 TYPE epsf-epsdirnam,
      lv_file_size TYPE EPSF-EPSFILSIZ,
      lv_file_owner TYPE EPSF-EPSFILOWN,
      lv_file_mode TYPE EPSF-EPSFILMOD,
      lv_file_type TYPE EPSF-EPSFILTYP,
      lv_mtime TYPE p DECIMALS 0,
      lv_file_size TYPE P.

CALL FUNCTION 'EPS_GET_FILE_ATTRIBUTES'
   EXPORTING
     file_name              = lv_file_name
     dir_name               = lv_ruta_salida60
   IMPORTING
     file_size              = lv_file_size
     file_owner             = lv_file_owner
     file_mode              = lv_file_mode
     file_type              = lv_file_type
     file_mtime             = lv_mtime
     file_size_long         = lv_file_size
    EXCEPTIONS
     read_directory_failed  = 1
     read_attributes_failed = 2
     OTHERS                 = 3.

IF sy-subrc = 0.
ENDIF.

Leer más

ABAP: Listar ficheros en una ruta

Con la función EPS2_GET_DIRECTORY_LISTING listaremos los ficheros en una ruta, le pasaremos la ruta donde queremos listar los ficheros y obtendremos una tabla con el listado de ficheros.

  • IV_DIR_NAME: Ruta de la que quermos obtener los ficheros listados
  • DIR_LIST: Tabla en la que obtendremos los ficheros de la ruta indicada anteriormente

 

EPS2_GET_DIRECTORY_LISTING

DATA: lv_ruta_salida200 TYPE eps2filnam VALUE 'C:\SAP\Entrada',
      li_listado_ficheros TYPE z_eps2fili_t.

CALL FUNCTION 'EPS2_GET_DIRECTORY_LISTING'
  EXPORTING
    iv_dir_name            = lv_ruta_salida200
  TABLES
    dir_list               = li_listado_ficheros
  EXCEPTIONS
    invalid_eps_subdir     = 1
    sapgparam_failed       = 2
    build_directory_failed = 3
    no_authorization       = 4
    read_directory_failed  = 5
    too_many_read_errors   = 6
    empty_directory_list   = 7
    OTHERS                 = 8.

IF sy-subrc = 0.
ENDIF.

Leer más

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.

Leer más

ABAP: Obtener ruta de fichero lógico

En esta entrada veremos como definir un nombre de fichero lógico en ABAP y obtener la dirección del fichero físico asociada:

Transacción FILE

Para definir un nombre de fichero lógico utilizaremos la transacción FILE y crearemos una entrada nueva:

 

Introduciremos los siguientes datos:

 

  • Fichero lógico: Identificador único del fichero lógico (con este ID llamaremos a la función para obtener la ruta)

Leer más

ABAP: Crear ayuda de búsqueda con SE11

En este tutorial veremos en ABAP:  Crear ayuda de búsqueda con SE11, para este caso crearemos una ayuda de búsqueda para un campo de una tabla Z*. En este caso crearemos una ayuda de búsqueda elemental.

Paso 1: Crear ayuda de búsqueda con SE11

  • Transacción SE11
  • Seleccionar la opción Ayuda p. búsqueda, definir un nombre y presionar crear. Se nos mostrara un Pop-Up con dos opciones, nosotros elegiremos Ayuda p. búsqueda elemental.

Crear ayuda de búsqueda

Leer más