SAP系统通过FTP上载*.txt文档到服务器
2009-09-08 10:12
232 查看
整体思路是从SAP系统内表抓取数据(PERFORM GET_DATA)进行整理之后(PERFORM DEAL_DATA)再进行转化为FTP上载用的格式(PERFORM GET_OUT.)也就是对数据的初始化,这里用到了CL_ABAP_CONV_OUT_CE这个类。接下来就是设置FTP了,分为有密码和没有密码的。
代码如下:
REPORT ZIEIT0005.
REPORT ZITOA0002.
代码如下:
START-OF-SELECTION. *-- create a class for converting sap object into binary data PERFORM CREATE_CODEPAGE_CONVERT_OBJECT. *-- 取出报关单清单 for transporting PERFORM GET_DATA. *-- 转化数据为BINARY DATA *-- 并把16进制的数据写到 LT_DATA table中 PERFORM DEAL_DATA. SORT IT_OUT BY EXPNR SORTID EBSQ. LOOP AT IT_OUT. IT_OUT-ITEM_NO = SY-TABIX. MODIFY IT_OUT. ENDLOOP. PERFORM GET_OUT. *****设置FTP的文件名 g_date = SY-DATUM. g_time = SY-UZEIT. CONCATENATE 'DEC_EXP_LIST' g_date g_time '.txt' INTO P_FILE. *** DOWNLOAD 文件并送出去 PERFORM FTP_DOWNLOAD USING P_FILE. **** CLOSE FTP * PERFORM FTP_DISCONNECT. ******************对内表数据进行上载FTP前的处理***** FORM GET_OUT . LOOP AT IT_OUT. call method conv->reset. "初始化类中所有数据 PERFORM cl_abap_conv_out_ce USING IT_OUT-EMS_NO. PERFORM cl_abap_conv_out_ce USING IT_OUT-EXPNR. . . . PERFORM cl_abap_conv_out_ce USING IT_OUT-Factor_2. PERFORM cl_abap_conv_out_ce USING IT_OUT-G_MARK. *************内表数据处理完都附加到一个LT_DATA中**** PERFORM APPEND_BUFFER. AT LAST. IF NOT G_XSTRING IS INITIAL. APPEND G_XSTRING TO LT_DATA. CLEAR G_XSTRING. ENDIF. ENDAT. ENDLOOP. ENDFORM. 连接FTP分为有密码和没密码2种,没密码相对简单,就验证连上否,连上了就进行数据传输;而有密码(注意区分大小写哦,ABAP默认是大写的)的要进行加密处理(为什么要加密,如何加密,不太清楚)再连FTP. 无密码处理: FORM FTP_DOWNLOAD USING FNAME. DATA: WA_DATA TYPE TS_DATA, blob_length type i. check not LT_DATA is initial. "判断是否有数据要传送 LOOP AT LT_DATA INTO WA_DATA. blob_length = blob_length + XSTRLEN( WA_DATA ). ENDLOOP. *** FTP CONNECT PERFORM FTP_CONNECT USING USER "user PWD "password HOST. "id ***直接把table中数据形成文件,FTP CALL FUNCTION 'FTP_R3_TO_SERVER' EXPORTING HANDLE = HDL FNAME = FNAME BLOB_LENGTH = BLOB_LENGTH CHARACTER_MODE = ' ' TABLES blob = LT_DATA * TEXT = PT_TAB EXCEPTIONS TCPIP_ERROR = 1 COMMAND_ERROR = 2 DATA_ERROR = 3 OTHERS = 4. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ELSE. MESSAGE S000(ZS) WITH '档案下载成功!'. ENDIF. ENDFORM. " FTP_DOWNLOAD 有密码的: CALL FUNCTION 'HTTP_SCRAMBLE' EXPORTING SOURCE = pwd sourcelen = l_slen key = key IMPORTING destination = pwd. * Connect to server CALL FUNCTION 'FTP_CONNECT' EXPORTING user = user password = pwd host = host rfc_destination = dest IMPORTING handle = hdl EXCEPTIONS not_connected = 1 OTHERS = 2. *****FTP file l_file = 'oa_insurance.txt'. CALL FUNCTION 'FTP_R3_TO_SERVER' EXPORTING HANDLE = HDL FNAME = l_file BLOB_LENGTH = BLOB_LENGTH CHARACTER_MODE = ' ' TABLES blob = LT_DATA * TEXT = PT_TAB EXCEPTIONS TCPIP_ERROR = 1 COMMAND_ERROR = 2 DATA_ERROR = 3 OTHERS = 4. ************************关闭连接FTP*********** CALL FUNCTION 'FTP_DISCONNECT' EXPORTING handle = hdl. CALL FUNCTION 'RFC_CONNECTION_CLOSE' EXPORTING destination = 'SAPFTPA' "固定 EXCEPTIONS OTHERS = 1.
REPORT ZIEIT0005.
REPORT ZITOA0002.
相关文章推荐
- 华为网络设备通过FTP服务器备份或更新系统和配置文件
- 通过quartz定时任务完成对FTP服务器上文档的下载
- CentOS FTP服务器系统套件全面讲解
- 本地文件上载到SAP 服务器
- 通过PHP实现浏览器点击下载TXT文档
- SAP ERP系统如何通过LS…
- Java通过OpenOffice将word、ppt、excel、图片、txt文档转换成PDF
- 通过SAPjco + sapidoc3 来实现第3方系统和SAP R3系统进行IDOC的双向传送数据
- 服务器刚装的系统无法访问ftp
- php 通过PATH_SEPARATOR判断当前服务器系统类型
- pxe网络安装系统---------基于windows xp做服务器(dhcp+ftp)安装linux系统
- 如何通过宽带路由器搭建WEB/FTP服务器
- ftp服务器系统编程编码程序下载代写代开发
- 通过FTP将一个数据文件从A服务器下载到B服务器的整个过程
- 无法通过ftp登录linux系统——解决办法
- ftp图片服务器搭建!ftp上传到图片服务器,通过http协议读取图片
- 通过ftp获取minix3.1.8系统源代码(virtual box 4)
- 服务器无法通过系统页面共享区来进行分配,因为共享区当前是空的。
- 第5章分布式系统模式 使用服务器激活对象通过 .NET Remoting 实现 Broker
- sap-通过调试突破client的锁定修改系统数据