SAP EP实现文件下载功能

本文详细介绍了在SAP EP中实现文件下载功能的步骤,包括通过RFC调用BAPI_DOCUMENT_GETDETAIL2获取凭证信息,使用SCMS_DOC_READ获取二进制数据,SCMS_BINARY_TO_XSTRING进行数据格式转换,最后借助Java代码将二进制数据转化为下载流完成下载操作。
摘要由CSDN通过智能技术生成

Part I.RFC

调用RFC把文件下载下来,然后EP远程调用把文件传递过去这种思想是不可取的,至于为什么我就不太清楚,知道的请告诉我,谢谢。

代码逻辑:

1、调用BAPI_DOCUMENT_GETDETAIL2,可以获得凭证文件的凭证编号和库存类型;
2、调用SCMS_DOC_READTABLES,通过输入凭证文件的凭证编号和库存类型,获取CONTENT_BIN,也就是该文件的二进制数据;
3、调用SCMS_BINARY_TO_XSTRING,我们需要的是十六进制的数据,所以需要转换一下格式;
4、最后利用外部系统的Java代码把二进制数据转换成输出输入流,调用相关的方法实现下载.

代码:

function zewm_rfc_dms_download2.
*"----------------------------------------------------------------------
*"*"Local interface:
*"  IMPORTING
*"     VALUE(IP_DOCUMENTNUMBER) LIKE  BAPI_DOC_AUX-DOCNUMBER OPTIONAL
*"     VALUE(IP_OPER) TYPE  CHAR1
*"     VALUE(IP_FILE_ID) TYPE  SDOK_PHID OPTIONAL
*"     VALUE(IP_STORAGECATEGORY) TYPE  CV_STORAGE_CAT OPTIONAL
*"  EXPORTING
*"     VALUE(EP_RETURN) TYPE  BAPIRET2
*"     VALUE(EP_FIELNAME) TYPE  SDOK_FILNM
*"     VALUE(EP_CONTENT) TYPE  XSTRING
*"  TABLES
*"      TB_REPORT STRUCTURE  ZDMS_FILE_INFO2
*"----------------------------------------------------------------------
  datalt_documentfiles      type table of bapi_doc_files2 with header line,
        lt_bapi_doc_structure type table of bapi_doc_structure with header line,
        ls_bapi_doc_files2    type bapi_doc_files2,
        l_filename   type bapi_doc_aux-filename,
        l_rfilename  type rlgrap-filename.
  datalv_fullname  type filep,
        lv_dokna     type filep,
        lv_dokpa     type filep.
  datalv_docnumber type bapi_doc_aux-docnumber.
  datarc type i,
        l_cfilename type string,
        l_result type abap_bool,
        l_directory type string.
  datalt_ftable type standard table of file_info,
        ls_ftable type file_info,
        l_count type i,
        lv_i type i.
*--------------------------------------------------------------------*
  datalw_zdms_file_info type zdms_file_info2.
  datalt_files2  type standard table of bapi_doc_files2,
        ls_files2  type bapi_doc_files2,
        ls_return  type bapiret2,
        lt_bin     type standard table of sdokcntbin,
        lt_inf     type standard table of scms_acinf,
        ls_inf     type scms_acinf.
  datacontentx   type xstring.
  datafilename   type sdok_filnm.
  datadocnum     type vttk-add03.
  databegin of lt_add03 occurs 0,
        add03 type vttk-add03,
        end of lt_add03.
  data:doctype type bapi_doc_aux-doctype value 'Z23',
       docpart type b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值