ABAP 操作服务器文件

作者:ABAP三叔 约 4 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, Data Engineering, MM, SD, WM, 仓库管理, 开发, 数据工程, 物料管理, 销售分销
ABAP 操作服务器文 - 封面图
ABAP 操作服务器文 - 封面图

前言

在项目中有时候需要上传文件到服务器、读取服务器文件的需求 ,例如将物料的款式图片上传到服务器,然后在需要的地方显示图片。

本篇文章将介绍具体的操作方法,并使用ABAP代码将常用的方法进行了封装,便于调用

基础

1\. 常用TCODE

• AL11 服务器上的路径和文件

• CG3Y 下载文件

• CG3Z 上传文件

2.常用ABAP语句

ABAP 操作服务器文 - 封面图
ABAP 操作服务器文 - 封面图

写入文件示例:

TYPES:BEGIN OF ty_tab, line(255) TYPE x,      END OF ty_tab .DATA: ls_tab TYPE ty_tab,      lt_tab TYPE STANDARD TABLE OF ty_tab.      OPEN DATASET iv_filename FOR OUTPUT IN BINARY MODE.IF sy-subrc EQ 0. LOOP AT lt_tab INTO DATA(ls_tab). TRANSFER ls_tab TO iv_filename. ENDLOOP. CLOSE DATASET iv_filename.ENDIF.

读取文件 示例 :

OPEN DATASET iv_filename FOR INPUT IN BINARY MODE.DO. READ DATASET iv_filename INTO ls_tab ACTUAL LENGTH DATA(bytes). IF sy-subrc <> 0. EXIT. ENDIF. APPEND ls_tab TO lt_tab.ENDDO.CLOSE DATASET iv_filename.

删除文件 示例 :

*

DELETE DATASET iv_filename .

方法封装

文件的上传、读取、下载、删除等方法封装在了 zcl_common类 中,具体代码可参见文末github仓库地址

ABAP 操作服务器文 - 封面图
ABAP 操作服务器文 - 封面图

测试代码

见测试程序ZDEMO_DATASET

*&---------------------------------------------------------------------**& Report ZDEMO_DATASET*&---------------------------------------------------------------------**&*&---------------------------------------------------------------------*REPORT zdemo_dataset."选择上传文件名DATA(lv_filename) = zcl_common=>get_file_name( ).CHECK lv_filename IS NOT INITIAL."上传到服务器DATA(rs_return) = zcl_common=>upload_file_to_server( iv_filename = lv_filename ).IF rs_return-return-type = 'E'. MESSAGE rs_return-return-message TYPE 'S' DISPLAY LIKE 'E'. RETURN.ENDIF."拆分文件路径DATA(ls_split) = zcl_common=>split_file( rs_return-filename )."获取保存路径DATA(lv_filename1) = zcl_common=>save_file_dialog( iv_filename = ls_split-filename )."从服务器下载文件到本地DATA(rs_return1) = zcl_common=>download_file_from_server( iv_filename_server = rs_return-filename iv_filename_client = lv_filename1 ).IF rs_return1-type = 'E'. MESSAGE rs_return1-message TYPE 'S' DISPLAY LIKE 'E'. RETURN.ENDIF.

代码逻辑为:从本地选择一个文件,上传到服务器,然后再从服务器下载下来存储到本地.

upload_file_to_server方法默认将文件上传到服务器/usr/sap/trans文件夹下,可修改此路径

总结

完整代码见Github

地址:https://github.com/a87b01c14/ZCL_COMMON.git

ABAP三叔

关于作者:ABAP三叔

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「ABAP操作服务器文件.md」整理生成,仅用于内部技术分享与学习交流。