2020-09-07 18:24发布
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)尊敬的专家, 我需要在不使用F... 显示全部
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
尊敬的专家,
我需要在不使用FTP的情况下将" .txt"文件从本地文件夹移动到AL11,在后台模式下。 当前正在使用FM ARCHIVFILE_CLIENT_TO_SERVER。
当我在SCN中搜索时,有人发布了如下内容。
使用FM" C13Z_FILE_UPLOAD_ASCII"以批处理模式将文件上传到应用程序服务器,然后使用打开数据集读取数据集和关闭数据集。
我很累但没有运气。
任何建议。
此致
Ishwarya
感谢各种见解。.
SPAN { 字体家族:" Courier New"; 字体大小:10pt; 颜色:#000000; 背景:#FFFFFF; } .L0S31 { 字体样式:斜体; 颜色:#808080; } .L0S32 { 颜色:#3399FF; } .L0S33 { 颜色:#4DA619; } .L0S52 { 颜色:#0000FF; } .L0S55 { 颜色:#800080; } .L0S70 { 颜色:#808080; } *&------------------------------------------------ --------------------- * *&报告ZZ_ALL11_UP_DOWN *&------------------------------------------------ --------------------- * *& *&------------------------------------------------ --------------------- * 报告zz_al11_down_up。 表格:可旋转。 常量:c_execute_command类型sy-ucomm值'ONLI'。 具有帧标题lv_t1的第1块的选择屏幕开始。 参数gv_rb1类型c RADIOBUTTON GROUP对接默认'X'。 参数gv_rb2 TYPE C RADIOBUTTON GROUP对接。 参数gv_rb3 TYPE C RADIOBUTTON GROUP对接。 选择屏幕的结尾1。 选择选项:so_asfil FOR rovertable-filename没有间隔。 " RLGRAP-FILENAME。 参数:p_out TYPE字符串默认值'C:\ temp'小写。 参数:p_addext类型c AS CHECKBOX DEFAULT"。 数据:ls_asfil,就像so_asfil的行一样, ls_subrc类型为sy-subrc。 在p_out值请求的选择屏幕上。 DATA:lv_selected_folder TYPE字符串。 呼叫方法cl_gui_frontend_services => directory_browse 改变 selected_folder = lv_selected_folder 例外情况 cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 其他= 4。 如果sy-subrc <> 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 p_out = lv_selected_folder。 在选择屏幕上。 如果sy-ucomm = c_execute_command。 执行check_directory。 万一。 在SELECT-SCREEN上对so_asfil-low的值请求。 ******************* PERFORM z30_get_filename更改so_asfil-low。 选择开始。 *如果选择下载到桌面 如果gv_rb1 ='X'。 循环至so_asfil INTO ls_asfil。 使用ls_asfil-low p_out执行下载。 执行show_msg。 结局。 ELSEIF gv_rb2 ='X'。 "选择了"上载到应用程序服务器" 循环至so_asfil INTO ls_asfil。 BREAK-POINT。 使用ls_asfil-low p_out ls_subrc执行上传。 使用ls_subrc执行show_upd_msg。 结局。 ELSEIF gv_rb3 ='X'。 "已选择从应用程序服务器删除文件 循环至so_asfil INTO ls_asfil。 使用ls_asfil-low ls_subrc执行delete_from_as。 使用ls_subrc执行show_del_msg。 结局。 万一。 FORM delete_from_as使用 pv_dimfile TYPE本地文件 更改lv_subrc类型sy-subrc。 *从文件名中修剪路径 * .//BU_LINE-> BU_LINE 数据: 文件大小为类型epsf-epsfilsiz, filenm TYPE epsfilnam, 文件路径类型epsdirnam, lv_string TYPE字符串," VALUE'.//BU_LINE", lv_len TYPE i, lv_pos TYPE i, lv_last_occ类型i。 将pv_dimfile移动到lv_string。 lv_len = strlen(lv_string)。 做。 搜索lv_string FOR'/'。 如果sy-subrc ='0'。 lv_pos = sy-fdpos + 1。 lv_len = lv_len-sy-fdpos-1。 lv_string = lv_string + lv_pos(lv_len)。 lv_last_occ = lv_last_occ + sy-fdpos + 1。 其他。 出口。 万一。 ENDDO。 *文件名是 filenm = lv_string。 *路径为 文件路径= pv_dimfile(lv_last_occ)。 *检查文件是否存在 通话功能'EPS_GET_FILE_ATTRIBUTES' 出口 file_name = filenm * IV_LONG_FILE_NAME = dir_name =文件路径 * IV_LONG_DIR_NAME = 输入 file_size =文件大小 * FILE_OWNER = * FILE_MODE = * file_type = filetyp * FILE_MTIME = * FILE_SIZE_LONG = 例外情况 read_directory_failed = 1 read_attributes_failed = 2 其他= 3 。 如果sy-subrc <> 0。 *在这里实施适当的错误处理 lv_subrc = sy-subrc。 其他。 通话功能'EPS_DELETE_FILE' 出口 file_name = filenm" VERSION * IV_LONG_FILE_NAME = dir_name =文件路径" .// * IV_LONG_DIR_NAME = *重要 * FILE_PATH = * EV_LONG_FILE_PATH = *例外情况 * INVALID_EPS_SUBDIR = 1 * SAPGPARAM_FAILED = 2 * BUILD_DIRECTORY_FAILED = 3 * NO_AUTHORIZATION = 4 * BUILD_PATH_FAILED = 5 * DELETE_FAILED = 6 *其他= 7 。 如果sy-subrc <> 0。 *在这里实施适当的错误处理 lv_subrc = sy-subrc。 万一。 万一。 ENDFORM。 表格show_msg。 带有文本004的消息s398(00)。"文件下载成功! ENDFORM。 " show_msg 使用p_subrc类型sy-subrc的FORM show_upd_msg。 如果p_subrc = 0。 带有文本003的消息s398(00)。"文件已成功上传! 其他。 带有文本002的消息s398(00)。"上传文件时出错! 万一。 ENDFORM。 " show_msg FORM show_del_msg使用p_subrc类型sy-subrc。 如果p_subrc = 0。 带有文本005的消息s398(00)。"文件已成功删除! 其他。 带有文本006的消息s398(00)。"文件删除错误! 万一。 ENDFORM。 " show_del_msg FORM上传使用pv_dimfile TYPE localfile out_path TYPE字符串 更改lv_subrc类型sy-subrc。 数据:lv_dimfile类型SAPB-SAPPFAD, ls_out_path TYPE SAPB-SAPPFAD, lv_out_path类型SAPB-SAPPFAD。 数据: 文件大小为类型epsf-epsfilsiz, filenm TYPE epsfilnam, 文件路径类型epsdirnam, lv_string TYPE字符串," VALUE'.//BU_LINE", lv_len TYPE i, lv_pos TYPE i, lv_last_occ类型i。 移动:pv_dimfile至lv_string, ls_out_path的out_path。 lv_len = strlen(lv_string)。 做。 搜索lv_string FOR'/'。 如果sy-subrc ='0'。 lv_pos = sy-fdpos + 1。 lv_len = lv_len-sy-fdpos-1。 lv_string = lv_string + lv_pos(lv_len)。 lv_last_occ = lv_last_occ + sy-fdpos + 1。 其他。 出口。 万一。 ENDDO。 *文件名是 filenm = lv_string。 *路径为 文件路径= pv_dimfile(lv_last_occ)。 CONCATENATE out_path filenm INTO ls_out_path用'\'分隔。 移动:pv_dimfile到lv_out_path, lv_dimfile的ls_out_path。 如果p_addext ='X'。 将lv_dimfile'.txt'并入lv_dimfile。 CONCATENATE lv_out_path'.txt'INTO lv_out_path。 万一。 通话功能'ARCHIVFILE_CLIENT_TO_SERVER' 出口 路径= lv_dimfile targetpath = lv_out_path 例外情况 error_file = 1 no_authorization = 2 其他= 3。 lv_subrc = sy-subrc。 清除:lv_last_occ,lv_string,lv_len,lv_pos,filenm,filepath,lv_dimfile,lv_out_path,ls_out_path。 ENDFORM。 "表格上传 *&------------------------------------------------ --------------------- * *&表格下载 *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * 表格下载使用 pv_dimfile TYPE本地文件 out_path TYPE字符串。 DATA:lv_path像sapb-sappfad VALUE``, lv_targetpath像sapb-sappfad, lv_ot_filename TYPE字符串。 CONCATENATE lv_path pv_dimfile INTO lv_path。 如果p_addext ='X'。 将pv_dimfile'.txt'连接到pv_dimfile中。 万一。 CONCATENATE out_path pv_dimfile INTO lv_targetpath由" \"分隔。 * BREAK-POINT。 通话功能'ARCHIVFILE_SERVER_TO_CLIENT' 出口 路径= lv_path targetpath = lv_targetpath 例外情况 error_file = 1 其他= 2。 如果sy-subrc <> 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 ENDFORM。 "下载 *&------------------------------------------------ --------------------- * *&表格check_directory *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * FORM check_directory。 数据:lv_result TYPE c, lv_directory TYPE字符串。 lv_directory = p_out。 呼叫方法cl_gui_frontend_services => directory_exist 出口 目录= lv_directory 接收 结果= lv_result 例外情况 cntl_error = 1 error_no_gui = 2 错误参数= 3 not_supported_by_gui = 4 其他= 5。 如果sy-subrc <> 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 如果lv_result是INITIAL。 带有文本001的消息e398(00)。"输出目录不存在! 万一。 ENDFORM。 " check_directory *&------------------------------------------------ --------------------- * *&表格Z30_GET_FILENAME *&------------------------------------------------ --------------------- * *文字 * ------------------------------------------------- --------------------- * FORM z30_get_filename更改p_file。 * ------------------- * 数据:lt_files TYPE文件表, ls_file TYPE file_table, lv_lfile TYPE字符串, lv_rc TYPE i, lv_applserv TYPE as4flag, lv_al11 TYPE as4flag, lv_initial_dir TYPE字符串, lv_guiext TYPE字符串, lv_guiflt TYPE字符串, lv_title TYPE字符串。 *情况" X"。 *当p_pc。 "来自PC或网络的文件 * lv_initial_dir ='我的文档'。 *当p_unix。 "来自SAP服务器的文件 * lv_applserv ='X'。 * lv_al11 ='X'。 *当别人。 *结束。 lv_lfile = p_file。 呼叫方法cl_rsan_ut_files => f4 出口 i_applserv ='X'" lv_applserv' i_title = lv_title i_gui_extension = lv_guiext i_gui_ext_filter = lv_guiflt i_applserv_logical =空间 i_applserv_al11 ='X'" lv_al11' 改变 c_file_name = lv_lfile 例外情况 失败= 1 其他= 2。 如果sy-subrc <> 0。 消息ID sy-msgid类型sy-msgty编号sy-msgno 与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4。 万一。 p_file = lv_lfile。 ENDFORM。 " Z30_GET_FILENAME
最多设置5个标签!
感谢各种见解。.
一周热门 更多>