Ver la Versión Completa : Función para buscar carpetas en Servidor
matiasguillermon
30/05/12, 13:11:44
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, 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
Hola,
la función RZL_READ_DIR_LOCAL te va servir.
Saludos.
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
matiasguillermon
30/05/12, 14:48:09
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
con esta función podes seleccionar carpetas del servidor /SAPDMC/LSM_F4_SERVER_FILE aunque también permite elegir archivos.
Espero te sirva.
Saludos.
Ariel-StaFe
20/05/14, 17:00:11
ISU_M_GET_FILES_OF_DIR
Saludos
www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web