SAP到FTP EXCEL文件格式.XLSX

2020-08-21 23:23发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) HI SDN, 我正在研究一...

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

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


HI SDN,

我正在研究一个对象,该对象使用功能模块HTTP_SCRAMBLE,FTP_CONNECT,FTP_R3_TO_SERVER,FTP_DISCONNECT从SAP ABAP程序向Excel服务器发送excel文件格式(.xls)。 文件正在发送到FTP服务器,文件正在FTP服务器上打开,并且记录可见。 但是,当我们使用功能模块HTTP_SCRAMBLE,FTP_CONNECT,FTP_R3_TO_SERVER,FTP_DISCONNECT从SAP ABAP Programe将文件格式(.xlsx)发送到FTP服务器时。 文件正在发送到FTP服务器,并且文件未在FTP服务器上打开。错误为" Excel无法打开文件'test.xlsx',因为文件扩展名的文件格式无效。请验证文件是否为 excelerror.jpg 损坏,并且文件扩展名与文件的格式匹配。 a>

excelerror.jpg (12.4 kB)
7条回答
四川大学会员
2020-08-21 23:54

桑德拉·罗西

我正在粘贴代码以进一步说明。 请让我知道需要进行哪些更正。

报告ZMM_MATERIAL_STOCK_SAP_TO_FTP。
************************************************* **************************************************
*结构 *
************************************************** ********************************************
TYPES:BEGIN OF TY_MARD," 材料表
WERKS型MARD-WERKS,"植物
MATNR型MARD-MATNR,"材料代号
LABST型MARD-LABST,"已估价的非限制使用库存
LGORT型MARD-LGORT, "存储位置
TY_MARD的结尾,
TY_FIN的开始,
WERKS类型C长度10," MARD-WERKS","工厂
MATNR类型C长度18," MARD-MATNR,"材料代码
LABST(20)类型c," N",有价值的非限制使用的普通MARD-LABST,
LGORT类型C长度10," MARD-LGORT","存储位置
TY_FIN的末尾,
开始于EXCEL_ST,
WERKS类型C长度10," MARD-WERKS","植物
WRK_DELIM1类型C," X",MATRN C类型长度18," MARD-MATNR","材料代码
WRK_DELIM2 TYPE C," N",
LABST(20)TYPE C," N","无限制使用" 库存MARD-LABST,
WRK_DELIM3类型C," X
LGORT类型C长度10," MARD-LGORT,"存储位置,
EXCEL_ST的结尾。
******** ****************************************************** ********************************
*桌子*
************* ****************************************************** ***************************
数据:IT_MARD类型的TY_MARD标准表,
IT_FIN类型标准的TY_FIN的标准表,
IT_EXCEL类型 EXCEL_ST标准表。
********************************************** ************************************************
*工作区域 *
************************************************** ********************************************
DATA:WA_FIN TYPE TY_FIN,< br> WA_MARD TYPE TY_MARD,
WA_EXCEL TYPE EXCEL_ST。
********************************** ****************************************************** **
*局部变量*
************************************** ****************************************************
表:MARD。
选择屏幕:开始的块 具有框架标题文本001的B1。
参数:p_date类似于sy-datum默认sy-datum。
选择画面:块B1的结尾。

INITIALIZATIONATION。
清除:WA_MARD,
WA_EXCEL,
WA_FIN。
刷新:IT_MARD,
IT_EXCEL,
IT_FIN。
在选择屏幕上。
选择开始。
执行FINAL_TABLE_HEADER。
PERFORM GET_MARD_TABLE_DETAILS。
PERFORM EXCEL_FORMAT_TEMPLATE。
PERFORM SAP_STOCK_EXCEL_FILE_TO_FTP。

END-OF-SELECTION。
*&--------------- -------------------------------------------------- ---- *
*&表格GET_MARD_TABLE_DETAILS
*&--------------------------------- ------------------------------------ *
*文字
* ---- -------------------------------------------------- ---------------- *
*-> p1文本
* <-p2文本
* ----------- -------------------------------------------------- --------- *
表格GET_MARD_TABLE_DETAILS。
从MARD中选择MARD〜WERKS MARD〜MATNR MARD〜LABST MARD〜LGORT到表IT_MARD中
内联接MARA ON(MARA〜M ATNR = MARD〜MATNR)
MARA〜MTART ='ZFRT'
和WERKS IN('5000',
'6000')
和LGORT IN('1001','1101') 。

如果SY-SUBRC =0。
通过MATNR WERKS LGORT排序IT_MARD。
将IT_MARD放入WA_MARD。
CLEAR: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 。
ENDLOOP。
ENDIF。
ENDFORM。 " GET_MARD_TABLE_DETAILS
*&------------------------------------------- -------------------------- *
*&表格EXCEL_FORMAT_TEMPLATE
*&----------- -------------------------------------------------- -------- *
*文字
* -------------------------------- -------------------------------------- *
*-> p1文字
* <-p2文字
* --------------------------------------- ------------------------------- *
FORM EXCEL_FORMAT_TEMPLATE。
在IT_FIN处进入WA_FIN。
将对应的WA_FIN移动到WA_EXCEL。
WA_EXCEL-WRK_DELIM1 = CL_ABAP_CHAR_UTILITIES => HORIZONTAL_TAB。"或| \ t |
WA_EXCEL-WRK_DELIM2 = CL_ABAP_CHAR_UTILITIES => HORIZONTAL_TAB。 "或| \ t |
WA_EXCEL-WRK_DELIM3 = CL_ABAP_CHAR_UTILITIES => HORIZONTAL_TAB。"或| \ t |
将WA_EXCEL附加到IT_EXCEL。
CLEAR:WA_MARD,WA_EXCEL。
ENDLOOP。
ENDFORM 。 " EXCEL_FORMAT_TEMPLATE
*&------------------------------------------- -------------------------- *
*&表格SAP_STOCK_EXCEL_FILE_TO_FTP
*&----------- -------------------------------------------------- -------- *
*文字
* -------------------------------- -------------------------------------- *
*-> p1文字
* <-p2文字
* --------------------------------------- ------------------------------- *
表格SAP_STOCK_EXCEL_FILE_TO_FTP。
DATA:L_USER(30)C型值 'test123'," FTP服务器的用户名
L_PWD(30)C类型的值'1234567'," FTP服务器的密码
L_HOST(64)C类型的值'199.20.100.3'," FTP的IP地址 服务器
L_DEST像RFCDES-RFCDEST值'SAPFTPA'。"背景RFC目标
DATA:W_HDL类型I,
C_KEY类型I值26101957,
L_SLEN类型I.
数据:WRK_FILE类型 CHAR200。
CLEAR:WRK_FILE。
WRK_FILE ='\ Main \ TEST \ Material_Stock.xlsx'。
设置扩展检查关闭。
L_SLEN = STRLEN(L_PWD)。
呼叫功能'HTTP_SCRAMBL E'
导出
源= L_PWD
源= L_SLEN
键= C_KEY
导入
目的地= L_PWD。
*使用FTP
CALL连接到服务器 功能'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'
表格
TEXT = 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
引发INVALID_OUTPUT_FILE。
ENDIF。
呼叫功能'FTP_DISCONNECT'
导出
手柄 = W_HDL。
呼叫功能'RFC_CONNECTION_CLOSE'
导出
目的地= L_DEST
例外情况
其他= 1.
ENDFORM。 " SAP_STOCK_EXCEL_FILE_TO_FTP

*&---------------------------------------- ----------------------------- *
*&表格FINAL_TABLE_HEADER
*&-------- -------------------------------------------------- ----------- *
*文字
* ----------------------------- ----------------------------------------- *
*-> p1 文字
* <-p2文字
* ------------------------------------ ---------------------------------- *
表格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

一周热门 更多>