Subir archivo separado por Comas

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • jjeffer
    Member
    • jun
    • 62

    #1

    Subir archivo separado por Comas

    Hola,

    Estoy creando un programa que me permita subir un archivo separado por comas, estoy utilizando esta función GUI_UPLOAD pero no funciona , solo sirve cuando el archivo esta separado por TAB, espero que puedan ayudarme.

    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = l_filename
    filetype = 'ASC'
    has_field_separator = ' ' "Tambien utilizo ','.
    * HEADER_LENGTH = 0
    * READ_BY_LINE = 'X'
    * DAT_MODE = ' '
    * CODEPAGE = ' '
    * IGNORE_CERR = ABAP_TRUE
    * replacement = '#'
    * CHECK_BOM = ' '
    * VIRUS_SCAN_PROFILE =
    * NO_AUTH_CHECK = ' '
    * IMPORTING
    * FILELENGTH =
    * HEADER =
    TABLES
    data_tab = p_table
    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.
    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
    ENDIF.

    Gracias,
    Editado por última vez por jjeffer; 15/07/2011, 01:06:14.
  • mysmb2
    Senior Member
    • ene
    • 406

    #2
    hola, esa funcion solo admite separadores con TAB, vas a tener que levantar el archivo en una tabla interna de una linea y luego a esa linea hacerle SPLIT de la forma
    SPLIT linea AT ',' INTO tabla-campo1 tabla-campo2..etc.

    saludos.
    Sebastián Chiavia
    http://www.programacionabap.com.ar

    Comentario

    • jjeffer
      Member
      • jun
      • 62

      #3
      Muchas gracias Sebastian, tu respuesta me sirvió de mucha ayuda.

      Coloco el codigo por si a alguien le sucede lo mismo que a mi

      "Declaro la TI con solo un campo tipo STRING
      DATA: BEGIN OF ti_texto OCCURS 0,
      line TYPE string,
      END OF ti_texto.

      "Declaro la variable que contiene el nombre del archivo
      DATA l_filename TYPE string.


      l_filename = 'c:\prueba.txt'.

      CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
      filename = l_filename
      filetype = 'ASC'
      has_field_separator = ','
      TABLES
      data_tab = ti_texto
      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.
      MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
      WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.

      "wt_itabct es la tabla donde voy a insertar los registros
      LOOP AT ti_texto.
      SPLIT ti_texto-line AT ',' INTO wt_itabct-zzidprssrv
      wt_itabct-zzfchrem
      wt_itabct-zzcodarch
      wt_itabct-zztotreg.
      APPEND wt_itabct.
      ENDLOOP.

      Comentario

      Trabajando...