如何使用ABAP2XLSX API将.XLSX文件发布到FTP服务器

2020-08-19 18:35发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)什么是ABAP2XLSX API...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


什么是ABAP2XLSX API。 如何将.XLSX文件从SAP发布到FTP服务器或从FTP服务器重新发布到SAP。

.2003年之前的XLS可以很好地与FTP服务器进行交互。

我的要求是使用最新的.XLS(2007年之前)或.XLSX发布数据

谢谢

5条回答
clasier
2020-08-19 18:56

我发布您的代码,以便人们可以直接查看它:

 REPORT zmm_material_stock_sap_to_ftp。
 类型:ty_mard的开始,"材料库存表
         werks TYPE mard-werks,"植物
         matnr TYPE mard-matnr,"材料代码
         labst TYPE mard-labst,"未限制使用的估价存货
         lgort TYPE mard-lgort,"存储位置
       ty_mard的结尾,
       ty_fin的开始,
         类型c长度为10的"怪人"," MARD-WERKS","植物"
         matnr TYPE C LENGTH 18," MARD-MATNR",材料代码
         labst(20)TYPE C," N",已估价的非限制使用库存MARD-LABST,
         lgort TYPE C LENGTH 10," MARD-LGORT","存储位置"
       结束于ty_fin,
       开始于excel_st,
         类型c长度为10的"怪人"," MARD-WERKS","植物"
         wrk_delim1 TYPE c," X"
         matnr TYPE C LENGTH 18," MARD-MATNR",材料代码
         wrk_delim2 TYPE c," N,
         labst(20)TYPE C," N",已估价的非限制使用库存MARD-LABST,
         wrk_delim3 TYPE c," X
         lgort TYPE C LENGTH 10," MARD-LGORT","存储位置",
       excel_st结束。
 数据:ty_mard的it_mard类型标准表,
      ty_fin的it_fin类型标准表,
      it_excel excel_st的标准类型表。
 数据:wa_fin TYPE ty_fin,
      wa_mard TYPE ty_mard,
      wa_excel TYPE excel_st。
 表:马尔。

 选择屏幕:带有标题标题文本001的b1块的开始。
 参数:p_date像sy-data的DEFAULT sy-datum。
 选择屏幕:块结尾b1。

 初始化。
   清除:wa_mard,
   wa_excel,
   wa_fin。
   刷新:it_mard,
   it_excel,
   it_fin。

 选择开始。
   执行final_table_header。
   执行get_mard_table_details。
   执行excel_format_template。
   执行sap_stock_excel_file_to_ftp。

 表格get_mard_table_details。
   选择mard〜werks mard〜matnr mard〜labst mard〜lgort进入表it_mard FROM mard
   内连接mara ON(mara〜matnr = mard〜matnr)
   在哪里mara〜mtart ='ZFRT'
   AND wers IN('5000',
   '6000')
   AND lgort IN('1001','1101')。

   如果sy-subrc = 0。
     排序:it_mard,作者:matnr werks lgort。
     循环到it_mard INTO wa_mard。
       清除:wa_fin。
       wa_fin-werks = wa_mard-werks。
       wa_fin-matnr = wa_mard-matnr。
       wa_fin-labst = wa_mard-labst。
       wa_fin-lgort = wa_mard-lgort。
       将wa_fin附加到it_fin。
       清除:wa_fin,wa_mard。
     结局。
   万一。
 ENDFORM。  " GET_MARD_TABLE_DETAILS

 FORM excel_format_template。
   循环到it_fin INTO wa_fin。
     移动对应的wa_fin到wa_excel。
     wa_excel-wrk_delim1 = cl_abap_char_utilities =>水平标签。 或| \ t |
     wa_excel-wrk_delim2 = cl_abap_char_utilities =>水平标签。 或| \ t |
     wa_excel-wrk_delim3 = cl_abap_char_utilities =>水平标签。 或| \ t |
     附加wa_excel至it_excel。
     清除:wa_mard,wa_excel。
   结局。
 ENDFORM。  " EXCEL_FORMAT_TEMPLATE

 格式sap_stock_excel_file_to_ftp。
   DATA:l_user(30)TYPE C VALUE'test123'," FTP服务器的用户名
        l_pwd(30)TYPE c VALUE'1234567'," ftp服务器的密码
        l_host(64)TYPE c VALUE'XXX.XX.XXX.X'," FTP服务器的IP地址
        l_dest LIKE rfcdes-rfcdest值'SAPFTPA'。  "背景RFC目标
   数据:w_hdl TYPE i,
        c_key TYPE i VALUE 26101957,
        l_slen TYPE i。
   数据:wrk_file类型char200。
   清除:wrk_file。
   wrk_file ='\ Main \ TEST \ Material_Stock.xls'。
   将扩展检查设置为OFF。
   l_slen = strlen(l_pwd)。
   通话功能'HTTP_SCRAMBLE'
     出口
       源= l_pwd
       sourcelen = l_slen
       键= c_key
     输入
       目的地= l_pwd。
 *使用FTP连接到服务器
   通话功能'FTP_CONNECT'
     出口
       用户= l_user
       密码= l_pwd
       主机= l_host
       rfc_destination = l_dest
     输入
       句柄= w_hdl
     例外情况
       其他= 1。
   通话功能'FTP_R3_TO_SERVER'
     出口
       句柄= w_hdl
       fname = wrk_file
       character_mode ='X'
     桌子
       文字= it_excel
     例外情况
       tcpip_error = 1
       command_error = 2
       data_error = 3
       其他= 4。
   如果sy-subrc <> 0。
     消息ID sy-msgid类型sy-msgty编号sy-msgno
     与sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4
     RAISING invalid_output_file。
   万一。
   通话功能'FTP_DISCONNECT'
     出口
       句柄= w_hdl。
   通话功能'RFC_CONNECTION_CLOSE'
     出口
       目的地= l_dest
     例外情况
       其他= 1。
 ENDFORM。  " SAP_STOCK_EXCEL_FILE_TO_FTP

 FORM final_table_header。
   wa_fin-werks ='植物'。
   wa_fin-matnr ='材料'。
   wa_fin-labst ='库存数量。  '。
   wa_fin-lgort ='位置'。
   将wa_fin附加到it_fin。
   清除:wa_fin。
 ENDFORM。  " FINAL_TABLE_HEADER
 

一周热门 更多>