通过选择屏幕值帮助获取应用服务器完整目录路径
ABAP报表选择屏幕实现应用服务器目录F4帮助(仅选目录)
可行方案
针对你需要选择\\10.9.18.16\B2B_INTERFACES\TO_PROCESS这类应用服务器目录的需求,标准模块大多绑定文件选择逻辑,推荐两种自定义实现方式:
方法1:用F4IF_INT_TABLE_VALUE_REQUEST构建纯目录F4弹窗
先读取目标目录下的子目录列表,再调用通用F4函数生成选择弹窗:
DATA: lt_dir_list TYPE STANDARD TABLE OF rlgrap-filename, lv_target_root TYPE string VALUE '\\10.9.18.16\B2B_INTERFACES\', lv_selected_dir TYPE string. * 读取服务器目录内容 CALL FUNCTION 'RZL_READ_DIR_LOCAL' EXPORTING name = lv_target_root TABLES file_tbl = lt_dir_list EXCEPTIONS argument_error = 1 not_found = 2 permission_error = 3 OTHERS = 4. IF sy-subrc = 0. * 过滤仅保留目录(根据返回表中标识目录的字段调整,示例用CS字段) DELETE lt_dir_list WHERE cs NE 'D'. ENDIF. * 触发F4选择弹窗,绑定到选择屏幕参数P_PATH CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST' EXPORTING retfield = 'FILENAME' dynpprog = sy-repid dynpnr = sy-dynnr dynprofield = 'P_PATH' value_org = 'S' TABLES value_tab = lt_dir_list EXCEPTIONS parameter_error = 1 no_values_found = 2 OTHERS = 3.
方法2:调整F4_DXFILENAME_TOPRECURSION参数实现仅选目录
F4_DXFILENAME_TOPRECURSION(递归文件/目录选择F4帮助)可通过参数控制只展示目录:
DATA: lv_selected_path TYPE string. CALL FUNCTION 'F4_DXFILENAME_TOPRECURSION' EXPORTING i_location_flag = 'S' "S=应用服务器,C=本地GUI i_server = '10.9.18.16' "目标服务器地址 i_path = '/B2B_INTERFACES/' "初始目录 i_without_file = 'X' "核心参数:仅显示目录,隐藏文件 IMPORTING e_path = lv_selected_path.
设置i_without_file = 'X'后,弹窗只会展示目录结构,无需选择文件即可获取目录路径。
已验证无效的模块说明
你尝试过的以下模块无法满足需求,原因如下:
RZL_READ_DIR_LOCAL:仅读取目录内容,无F4交互逻辑J_2GSERVER_FILES_F4:强制绑定文件选择,无法单独选择目录/SAPDMC/LSM_F4_SERVER_FILE:LSMW专用工具,仅支持文件选择EPS_GET_DIRECTORY_LISTING/EPS_GET_DIRECTORY_PATH:仅处理SAP预设的EPS目录,不支持自定义网络路径SUBST_GET_FILE_LIST:仅读取系统替换变量对应的文件列表TMP_GUI_DIRECTORY_LIST_FILES:针对前端本地目录,而非应用服务器目录RS_GET_F4_DIR_FROM_APPLSERV:仅读取USER_DIR表(AL11配置的预设目录),无法选择自定义网络目录,调用方式:SUBMIT rs_get_f4_dir_from_applserv AND RETURN. IMPORT path_name FROM MEMORY ID 'PATH_NAME_SDL'.F4_DXFILENAME_TOPRECURSION:默认需选择文件,但通过上述参数调整后可满足需求
内容的提问来源于stack exchange,提问作者Arasumani A
相关产品推荐
相关产品推荐

