SAP ABAP 通过OPEN DATASET语法上传文件到服务器

一、知悉上传后保存在那个目录下

1、判断目录是否存在

通过事务码AL11打开服务器目录清单,创建目录文件

点击“配置用户目录”按钮

输入目录参数、目录路径和服务器后,点击保存按钮

在目录清单中找到刚才配置的目录参数,双击该参数,若能够进入明细界面,则表示该目录是真实存在的,可以使用。若报错(如上图所示):Wrong order of calls <- 调用 opendir: No such file or directory(,,..),则表示该目录不存在,无效。

2、创建目录

项目上需要和外围系统做接口,上传图片到文件服务器上,让外围系统过来读取,但是为了减少SAP应用服务器的负担,需要一台独立的文件服务器共享目录到SAP应用服务器,

也就是NFS,实现往SAP应用服务器上写文件,实际上是写在了这台独立的文件服务器上。

我们需要让基础架构工程师把文件服务器和SAP应用服务器做NFS,也就是共享,只对该目录开放给SAP权限。

SAP中可以在该目录上新建文件夹也就是在该目录里新建目录。

通过事务码SM69进入(仅讨论文件服务器是Linux系统)

点击创建按钮,输入命令名称、操作系统命令、操作系统命令参数,勾选“允许的附件参数”(在执行时用来输入目录路径),然后点击保存

在详情页点击执行按钮,在附加参数字段输入目录路径,点击执行,即可创建目录

创建目录仅可以在已有目录下面创建文件夹,而不能跨多层创建。比如,现有的目录仅为/user/sap/111,只能创建其下层如/user/sap/111/222,而不能一次性创建多层,如/user/sap/111/222/333/444

目录创建完毕后,即可通过AL11创建目录文件了

附删除目录命令

二、文件上传服务器

1、在应用服务器中打开文件OPEN  DATASET  <dsn>  [options] 此语句打开文件 <dsn> 。如果不指定任何模式 选项,则文件将按二进 制模式打开。如果系统不能打开文件,则将系统字段 SY-SUBRC 设置为 8,否则 SY-SUBRC 返回 0

2、打开文件读取OPEN DATASET <dsn> FOR INPUT IN TEXT MODE ENCODING DEFAULT .(以TXT文件打开)

3、打开文件写入OPEN DATASET <dsn> FOR OUTPUT IN TEXT MODE ENCODING DEFAULT .(以TXT文件打开写入,这种是打开文件完全重写)

4、打开文件追加 OPEN DATASET <dsn> FOR APPENDING IN TEXT MODE ENCODING DEFAULT .(以TXT文件打开写入,这种是打开文件追加记录)

5、关闭应用服务器上的文件 CLOSE DATASET <dsn>.

6、删除应用服务器上的文件 DELETE DATASET <dsn>.

7、向应用服务器上文件上写入数据TRANSFER  <f>  to  <dsn>  [LENGTH <len>].

8、向应用服务器上文件上读取数据READ  DATASET  <dsn>  INTO  <f>  [LENGTH <len>].

FUNCTION zbc_fm_upload_picture.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(IV_FILE_NAME) OPTIONAL
*"     VALUE(IV_PATH_SAVE) OPTIONAL
*"     VALUE(IV_PATH_UPLOAD) OPTIONAL
*"     VALUE(IV_CONTENT) TYPE  XSTRING OPTIONAL
*"     VALUE(IV_SAVE) TYPE  FLAG DEFAULT 'X'
*"  EXPORTING
*"     VALUE(EV_TYPE) TYPE  MSGTY
*"     VALUE(EV_MESSAGE) TYPE  STRING
*"     VALUE(EV_PATH)
*"     VALUE(EV_CONTENT) TYPE  XSTRING
*"----------------------------------------------------------------------

  DATA: lt_pic_data TYPE solix_tab.
  DATA: lv_length  TYPE i,
        lv_len     TYPE i,
        lv_failed  TYPE abap_bool,
        lv_message TYPE string.
  DATA: lv_file_name   TYPE string,
        lv_path_upload TYPE string,
        lv_path_save   TYPE string,
        lv_content     TYPE xstring.

  DATA: lo_obj TYPE REF TO cl_gui_frontend_services.
  DATA: lt_file TYPE filetable,
        lv_rc   TYPE i.

  IF iv_save EQ 'X' AND iv_path_save IS INITIAL.
    ev_type = 'E'.
    ev_message = '保存文件路径为空,请检查!'.
  ENDI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值