Matchcode download

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • SAPING
    Senior Member
    • may
    • 199

    #1

    Matchcode download

    Buenas.
    Necesito descargar un txt en el servidor y necesito un matchcode para esto...
    Actualemente estoy usando este codigo:

    lf_location = 'A'.

    * obtengo los servidores
    CALL FUNCTION 'RFC_GET_LOCAL_SERVERS'
    TABLES
    hosts = lt_host
    EXCEPTIONS
    not_available = 1
    OTHERS = 2.

    IF sy-subrc IS INITIAL.

    * Nombre del servidor a la estructura
    CLEAR lw_host.
    READ TABLE lt_host INTO lw_host INDEX 1.
    IF sy-subrc <> 0.

    CLEAR lw_host.

    ENDIF.

    ENDIF.

    * abro la ayuda de busqueda segun corresponda pc o servidor
    CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION'
    EXPORTING
    i_location_flag = lf_location
    i_server = lw_host-name
    IMPORTING
    o_path = pa_path2
    EXCEPTIONS
    rfc_error = 1
    error_with_gui = 2
    OTHERS = 3.
    IF sy-subrc IS NOT INITIAL.

    MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
    WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

    ENDIF.

    El tema es que si o si me pide seleccionar un archivo, y yo lo que quiero es la carpeta...
    Alguien sabe que funcion me permite hacer esto?.

    Gracias.
  • crounly
    Senior Member
    • nov
    • 227

    #2
    Prueba con la clase CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE

    Código:
    *&---------------------------------------------------------------------*
    *&      Form  SUB_DIRECTORY_SELECT
    *&---------------------------------------------------------------------*
    *     Browse through the Directories and get the user selection
    *----------------------------------------------------------------------*
    *      -->P_DIR   directory
    *----------------------------------------------------------------------*
    FORM SUB_DIRECTORY_SELECT  USING    P_DIR TYPE LOCALFILE.
    
    * Local Data
    
      DATA: L_SEL_DIR     TYPE STRING.
    
    
    * Browse the Directories
      CALL METHOD CL_GUI_FRONTEND_SERVICES=>DIRECTORY_BROWSE
    *     EXPORTING
    *       WINDOW_TITLE        =
    *      INITIAL_FOLDER       =
        CHANGING
          SELECTED_FOLDER      = L_SEL_DIR
        EXCEPTIONS
          CNTL_ERROR           = 1
          ERROR_NO_GUI         = 2
          NOT_SUPPORTED_BY_GUI = 3
          OTHERS               = 4
              .
      IF SY-SUBRC <> 0.
    *    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *               WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ELSE.
        P_DIR = L_SEL_DIR.
      ENDIF.
    
    
    ENDFORM.                    " SUB_DIRECTORY_SELECT
    http://codigoderetorno.blogspot.com.es/

    Comentario

    • SAPING
      Senior Member
      • may
      • 199

      #3
      Gracias, pero esa funcion la estoy usando para descargas locales... no me trae una pantalla como la del codigo que puse de ejemplo donde me muestre los directorios del server SAP.

      Me muestra solo las carpetas locales y compartidas de red.
      Por ejemplo, el otro codigo mostraba los archivos de una carpeta del tipo "/home/bztecc/Globalsis"
      Editado por última vez por SAPING; 27/06/2012, 14:32:47.

      Comentario

      • crounly
        Senior Member
        • nov
        • 227

        #4
        Ok, lo siento.

        He encontrado este hilo en el SCN de SAP:
        - let the user select a folder (not a file) from the abap server

        Igual te sirve, suerte
        http://codigoderetorno.blogspot.com.es/

        Comentario

        • SAPING
          Senior Member
          • may
          • 199

          #5
          Originalmente publicado por crounly
          Ok, lo siento.

          He encontrado este hilo en el SCN de SAP:
          - let the user select a folder (not a file) from the abap server

          Igual te sirve, suerte
          BUENISIMO !!!!...

          Era lo que buscaba...
          Gracias !!!!!!!

          Comentario

          • SAPING
            Senior Member
            • may
            • 199

            #6
            No se porque, esta funcion que me sirvio en su momento, ahora me esta dando un Dump.

            Si paso la funcion asi, me da el Dump:

            CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
            EXPORTING
            directory = ' '
            filemask = ' '
            IMPORTING
            serverfile = lv_file
            EXCEPTIONS
            canceled_by_user = 1
            OTHERS = 2.

            Pero si la uso asi me da ok:
            CALL FUNCTION '/SAPDMC/LSM_F4_SERVER_FILE'
            EXPORTING
            directory = 'D:\usr\sap\'
            filemask = ' '
            IMPORTING
            serverfile = lv_file
            EXCEPTIONS
            canceled_by_user = 1
            OTHERS = 2.

            No se porque ahora me pide que le pase el "Directory" si cuando la use anteriormente no me lo pedia.

            Igualmente, si no le paso ese parametro, el Dump me lo da en el EXIT del código, luego del mensaje:

            IF G_OK = NO.
            MESSAGE E019(/SAPDMC/LSMW).
            EXIT.
            ENDIF.

            Y la descripción dice:
            Texto breve
            Screen: Illegal message


            ??????????????????????

            Comentario

            • ballan
              Senior Member
              • oct
              • 671

              #7
              Probad a utilizar esta

              F4_DXFILENAME_TOPRECURSION

              Comentario

              • SAPING
                Senior Member
                • may
                • 199

                #8
                Ya use esa, pero da un error cuando el usr se pone a recorrer distintos paths del pop up que muestra para elegir la ruta, por eso uso la otra funcion.

                Comentario

                Trabajando...