Anuncio

Colapsar
No hay anuncio todavía.

Archivo texto

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes

  • Archivo texto

    Buen dia a todos, estoy empezando en esto del Abap y necesito leer un archivo txt en Abap y mostrarla con alvlist; me podrian ayudar con un ejemplo para poder hacerlo. Gracias.

  • #2
    ¿El archivo está en el servidor o en el pc del usuario?
    "Soy el señor Lobo, arreglo problemas"
    http://sapymas.blogspot.com/

    Comentario


    • #3
      Archivo texto

      Originalmente publicado por bisonye Ver Mensaje
      ¿El archivo está en el servidor o en el pc del usuario?
      Gracias por atender a mi pregunta. El archivo esta en el PC del usuario.

      Comentario


      • #4
        Archivo texto

        Originalmente publicado por bisonye Ver Mensaje
        ¿El archivo está en el servidor o en el pc del usuario?
        Gracias por atender a mi pregunta.
        El archivo esta en el PC del usuario.

        Comentario


        • #5
          Para leer un archivo de un pc local utiliza la función GUI_UPLOAD tal que así:

          Código:
            CALL FUNCTION 'GUI_UPLOAD'
              EXPORTING
                filename                      = fich
                filetype                      = 'ASC'
              HAS_FIELD_SEPARATOR           = 'T'
          *   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                      = it_fich
              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.
          En la tabla it_fich tienes tu fichero, el separador es el tabulador.
          Para obtener la ruta donde está el fichero en la pantalla de selección usas un parameter así:
          PARAMETERS fich TYPE string.
          Y en el control de la pantalla de selección pones esto:
          AT SELECTION-SCREEN ON VALUE-REQUEST FOR fich.
          CALL METHOD cl_gui_frontend_services=>file_open_dialog
          EXPORTING
          window_title = 'Abrir'
          * DEFAULT_EXTENSION =
          * DEFAULT_FILENAME =
          * FILE_FILTER =
          * WITH_ENCODING =
          * INITIAL_DIRECTORY =
          * MULTISELECTION =
          CHANGING
          file_table = filetable
          rc = rc
          * USER_ACTION =
          * FILE_ENCODING =
          * EXCEPTIONS
          * FILE_OPEN_DIALOG_FAILED = 1
          * CNTL_ERROR = 2
          * ERROR_NO_GUI = 3
          * NOT_SUPPORTED_BY_GUI = 4
          * others = 5
          .
          IF sy-subrc <> 0.
          * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
          * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
          READ TABLE filetable INDEX 1 INTO fich.
          Filetable y RC son de este tipo:
          DATA filetable TYPE filetable.
          DATA rc TYPE i.
          Saludos
          "Soy el señor Lobo, arreglo problemas"
          http://sapymas.blogspot.com/

          Comentario


          • #6
            Originalmente publicado por Rafael44 Ver Mensaje
            Buen dia a todos, estoy empezando en esto del Abap y necesito leer un archivo txt en Abap y mostrarla con alvlist; me podrian ayudar con un ejemplo para poder hacerlo. Gracias.
            Hola !

            Recien te hice un ejemplo super sencillo para guiarte paso a paso y puedas ver tu ALV en pantalla.

            ejemplo:

            Report ejemplo no standar page heading line-size 1023.
            Tables :
            .
            .
            **** Declaraciones para el ALV.
            type-pools: slis.

            data: g_repid like sy-repid,
            gs_print type slis_print_alv,
            gt_list_top_of_page type slis_t_listheader,
            gt_events type slis_t_event,
            gt_sort type slis_t_sortinfo_alv,
            gs_layout type slis_layout_alv,
            gt_fieldcat type slis_t_fieldcat_alv,
            fieldcat_ln like line of gt_fieldcat,
            col_pos type i.

            *Suponiendo que la tabla que vas a subir de C:\ y desplegar en ALV es:
            data: begin of tab occurs 0,
            cliente like kna1-kunnr,
            matnr like makt-matnr,
            maktx like makt-maktx,
            maktg like makt-maktg.
            data: end of tab.

            ** Declaraciones para subir archivo de la PC (armas el Layout para vaciar txt a este) deberas respetar como **fue hecho en modo texto

            DATA: BEGIN OF i_tablapc OCCURS 0,
            Cliente(10) type c,
            Matnr(17) type c,
            Maktx(25) type c,
            Maktg(25) type c,
            END OF i_tablapc.

            DATA: v_fsize TYPE i,
            v_fname TYPE rlgrap-filename,
            v_ftype TYPE rlgrap-fileTYPE.

            * SUbes el archivo y se queda en la tabla del layout

            CALL FUNCTION 'UPLOAD'
            EXPORTING
            codepage = 'IBM'
            filename = 'C:\ARCHIVO.TXT'
            filetype = 'DAT'
            item = 'Lee informac de la pc '
            IMPORTING
            filesize = v_fsize
            act_filename = v_fname
            act_filetype = v_ftype
            TABLES
            data_tab = i_tablapc
            EXCEPTIONS
            conversion_error = 1
            invalid_table_width = 2
            invalid_type = 3.
            *mueves a la tabla que vas a visualizar
            LOOP AT i_tablapc.
            move:
            i_tablapc-clliente to tab-cliente ,
            i_tablapc-matnr to tab-matnr ,
            i_tablapc-maktx to tab-maktx ,
            .
            Append tab.
            ENDLOOP.

            ** AHora la despliegas en el ALV
            sort tab by CLIENTE.
            g_repid = sy-repid.
            data: fieldcat_in type slis_fieldcat_alv.

            clear fieldcat_in.
            fieldcat_ln-fieldname = 'CLIENTE'.
            fieldcat_ln-tabname = 'TAB'.
            fieldcat_ln-ref_tabname = KNA1’.
            fieldcat_ln-seltext_l = 'Cliente’.
            fieldcat_ln-no_out = ' '.
            append fieldcat_ln to gt_fieldcat.

            clear fieldcat_in.
            fieldcat_ln-fieldname = 'MATNR'.
            fieldcat_ln-tabname = 'TAB'.
            fieldcat_ln-ref_tabname = MAKT’.
            fieldcat_ln-seltext_l = 'Material.
            fieldcat_ln-no_out = ' '.
            append fieldcat_ln to gt_fieldcat.

            clear fieldcat_in.
            fieldcat_ln-fieldname = ‘MAKTX'.
            fieldcat_ln-tabname = 'TAB'.
            fieldcat_ln-ref_tabname = ‘MAKT'.
            fieldcat_ln-seltext_l = 'Descripcion'.
            fieldcat_ln-no_out = ' '.
            append fieldcat_ln to gt_fieldcat.

            *** Resto campos de la tabla a visualizar
            .
            .
            data: gs_sort type slis_sortinfo_alv.
            clear gs_sort.
            * Ordenar el despliegue:
            gs_sort-fieldname = 'CLIENTE'.
            gs_sort-spos = 1.
            gs_sort-up = 'X'.
            append gs_sort to gt_sort.
            gs_sort-fieldname = 'MATNR'.
            gs_sort-spos = 2.
            gs_sort-up = 'X'.
            append gs_sort to gt_sort.



            call function 'REUSE_ALV_LIST_DISPLAY'
            exporting
            i_callback_program = g_repid
            i_structure_name = 'TAB'
            is_layout = gs_layout
            it_fieldcat = gt_fieldcat[]
            it_sort = gt_sort[]
            it_events = gt_events[]
            is_print = gs_print
            tables
            t_outtab = tab
            exceptions
            program_error = 1
            others = 2.


            PRUEBALO, ESPERO TE SIRVA SOLO GENERA EL ARCHIVO ARCHIVO.TXT Y DEJALO EN C:\

            Saludos

            Comentario


            • #7
              Como subir un txt al servidor

              Necesito subir un archivo txt de 200mb, de una maquina al servidor
              ejemplo sap esta en una maquina y un usuarion esta en otra maquina
              y necesito subir un archivo txt desde esa maquina al servisor sap.

              Tengo una funcuin que me ayuda a subir de la misma maquina puedo subir
              ejemplo maquina con sap en la unidad c: Y el archivo en la misma maquina en la unidad d:
              Sin problema pero ..

              Necesito subir de otra maquina al servisor.-

              Comentario

              Trabajando...
              X