Función para buscar carpetas en Servidor

Colapsar
X
 
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • matiasguillermon
    Junior Member
    • mar
    • 6

    #1

    Función para buscar carpetas en Servidor

    Hola, necesito una función para seleccionar una carpeta (no archivo) del servidor. Una que funcione como la "TMP_GUI_BROWSE_FOR_FOLDER" pero para servidor. Muchas gracias
  • SAPING
    Senior Member
    • may
    • 199

    #2
    Originalmente publicado por matiasguillermon
    Hola, necesito una función para seleccionar una carpeta (no archivo) del servidor. Una que funcione como la "TMP_GUI_BROWSE_FOR_FOLDER" pero para servidor. Muchas gracias
    Hola, fijate si esto te sirve: (si no es que entendi mal lo que necesitas)

    *&---------------------------------------------------------------------*
    *& Form F_TRAER_CONTENIDO
    *----------------------------------------------------------------------*
    * Adaptación / Copia de la función "RZL_READ_DIR_LOCAL"
    *
    * Descripción:
    * -La función RZL_READ_DIR_LOCAL devuelve el contenido del directorio
    * indicado con una extención de nombre de no mas de 32 caracteres.
    * La adaptación consiste en que devuelva el contenido del directorio
    * sin importar la extención del nombre
    *----------------------------------------------------------------------*
    * --> pe_name ruta del directorio a examinar
    * <-- te_archivos tabla que contiene el listado de objetos del dir.
    *----------------------------------------------------------------------*
    FORM f_traer_contenido TABLES te_archivos TYPE tt_tabla
    USING pe_name .
    *** El type utilizado es de acuerdo al declarado globalmente segun
    *** la necesidad de utilizacion de cada caso.
    *** En este caso es del siguiente tipo:
    * TYPES: BEGIN OF ty_tabla,
    * name TYPE char100,
    * size TYPE pfeflsize,
    * END OF ty_tabla.
    *
    * TYPES tt_tabla TYPE STANDARD TABLE OF ty_tabla.


    ************************************************** ********************
    *** OBJETOS PROPIOS DE LA FUNCION "RZL_READ_DIR_LOCAL"
    ************************************************** ********************
    DATA: BEGIN OF line_tbl OCCURS 100.
    INCLUDE STRUCTURE spflist.
    DATA: END OF line_tbl.

    DATA: loc_name(200).
    DATA: loc_dir(200).
    DATA: tmp_loc_dir(200).
    DATA: loc_dir_len TYPE i.
    DATA: full_name(400).
    DATA: ad_rzl TYPE i VALUE 20. "reserviert für RZ-Leitstand
    DATA: rzl_op_rd_dir TYPE i VALUE 14. " read directory

    ************************************************** ********************

    IF pe_name <> space.
    loc_name = pe_name.
    loc_dir = pe_name.
    SHIFT loc_dir LEFT BY 2 PLACES.
    loc_dir_len = STRLEN( loc_dir ).
    loc_dir_len = loc_dir_len - 1.
    SHIFT loc_dir CIRCULAR LEFT BY loc_dir_len PLACES.
    IF loc_name(2) = '$(' AND loc_dir(1) = ')'.
    loc_dir(1) = space.
    SHIFT loc_dir CIRCULAR RIGHT BY loc_dir_len PLACES.
    CALL 'C_SAPGPARAM' ID 'NAME' FIELD loc_dir
    ID 'VALUE' FIELD loc_dir.

    IF sy-subrc = 0.
    full_name = loc_dir.
    ELSE.
    full_name = pe_name.
    ENDIF.

    ELSE.
    full_name = pe_name.
    ENDIF.

    ELSE.
    full_name = pe_name.
    ENDIF.

    REFRESH line_tbl.
    ************************************************** **********************
    * Send Request, wait for Response
    ************************************************** **********************
    CALL 'ALERTS' ID 'ADMODE' FIELD ad_rzl
    ID 'OPCODE' FIELD rzl_op_rd_dir
    ID 'FILE_NAME' FIELD full_name
    ID 'DIR_TBL' FIELD line_tbl-*sys*.

    ************************************************** ********************
    *** WG_ARCHIVOS debe ser declarado del mismo tipo que se declaro el
    *** parametro TABLA de este form
    CASE sy-subrc.
    WHEN 0.
    LOOP AT line_tbl.
    wg_archivos-size = line_tbl(11).
    wg_archivos-name = line_tbl+12.
    APPEND wg_archivos TO tg_archivos.
    CLEAR wg_archivos.
    ENDLOOP.
    WHEN OTHERS. RAISE not_found.
    ENDCASE.

    ENDFORM. " F_TRAER_CONTENIDO

    Comentario

    • mysmb2
      Senior Member
      • ene
      • 406

      #3
      Hola,
      la función RZL_READ_DIR_LOCAL te va servir.
      Saludos.
      Originalmente publicado por matiasguillermon
      Hola, necesito una función para seleccionar una carpeta (no archivo) del servidor. Una que funcione como la "TMP_GUI_BROWSE_FOR_FOLDER" pero para servidor. Muchas gracias
      Sebastián Chiavia
      http://www.programacionabap.com.ar

      Comentario

      • matiasguillermon
        Junior Member
        • mar
        • 6

        #4
        Gracias por las respuestas pero quizas no me entendieron, necesito una función que funcione exactamente igual que la función "TMP_GUI_BROWSE_FOR_FOLDER" (dicha función ejecuta un POPUP con la opción de elegir la carpeta localmente) pero para el servidor. La función que me pasaron "RZL_READ_DIR_LOCAL" se usa para obtener los archivos de una carpeta del servidor. En este momento estoy utilizando la función "F4_DXFILENAME_TOPRECURSION" y al finalizar elimino el nombre del archivo. Pero me gustaría que haga directamente la selección de carpeta. Por favor el que haya hecho esto se lo agradecería. Saludos

        Comentario

        • mysmb2
          Senior Member
          • ene
          • 406

          #5
          con esta función podes seleccionar carpetas del servidor /SAPDMC/LSM_F4_SERVER_FILE aunque también permite elegir archivos.
          Espero te sirva.
          Saludos.
          Sebastián Chiavia
          http://www.programacionabap.com.ar

          Comentario

          • Ariel-StaFe
            Senior Member
            • nov
            • 321

            #6
            ISU_M_GET_FILES_OF_DIR
            Saludos
            Ariel-StaFe
            Analista Programador Abap Senior
            Santa Fe Capital
            Pcia de Santa Fe
            Argentina

            Comentario

            Trabajando...