啥都不说,直接上代码

*******  如果无法链接FTP,可能需要往表SAPFTP_SERVERS加入IP地址和端口(21)即可

DATA:p_host   TYPE char64  VALUE 'IP', "IP
p_uname TYPE char30 VALUE 'username' , "用户名称
p_pwd TYPE char30 VALUE 'password' . "用户密码 DATA:dest LIKE rfcdes-rfcdest VALUE 'SAPFTP',
compress TYPE c VALUE 'N'. DATA:hdl TYPE i,
key TYPE i VALUE 26101957,
slen TYPE i,
cmd(80) TYPE c VALUE 'cd /文件夹/', "ftp的操作 具体可以百度
blen TYPE i. DATA:lv_file(40). "存放文件名 DATA:BEGIN OF result OCCURS 0,
line(100) TYPE c,
END OF result. DATA:BEGIN OF ls_line,
line(2000),
END OF ls_line,
lt_line LIKE TABLE OF ls_line. DATA:i_bintab TYPE w3mimetabtype . slen = strlen( p_pwd ). * "获取加密密码 保存到P_PWD
CALL FUNCTION 'HTTP_SCRAMBLE'
EXPORTING
source = p_pwd
sourcelen = slen
key = key
IMPORTING
destination = p_pwd. * 连接ftp服务器
CALL FUNCTION 'FTP_CONNECT'
EXPORTING
user = p_uname
password = p_pwd
host = p_host
rfc_destination = dest
IMPORTING
handle = hdl. "连接的句柄 CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = hdl
command = cmd "进入指定ftp目录
compress = compress
TABLES
data = result
EXCEPTIONS
command_error = 1
tcpip_error = 2.
******* LOOP AT result.
******* WRITE AT / result-line.
******* ENDLOOP. lv_file = '*******.txt'. "ftp目录下的文件名(只支持*.txt OR *.dat)
* 解析*.txt 文件
"1.在代码中由于有中文,所以需先得到BIN的内表
"2.使用SCMS_BINARY_TO_TEXT把BIN的二进制值转换为GB2312
CALL FUNCTION 'FTP_SERVER_TO_R3'
EXPORTING
handle = hdl
fname = lv_file
* character_mode = 'X'
IMPORTING
blob_length = blen
TABLES
blob = i_bintab
* text = lt_line
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_error = 3
OTHERS = 4.
"转换BIN内表数据
CALL FUNCTION 'SCMS_BINARY_TO_TEXT'
EXPORTING
input_length = blen
encoding = '8400' "4110:UTF8,8400:GB2312
IMPORTING
output_length = blen
TABLES
binary_tab = i_bintab
text_tab = lt_line
EXCEPTIONS
failed = 1
OTHERS = 2. CALL FUNCTION 'FTP_DISCONNECT'
EXPORTING
handle = hdl. CALL FUNCTION 'RFC_CONNECTION_CLOSE'
EXPORTING
destination = dest
EXCEPTIONS
OTHERS = 1.

ABAP链接FTP把txt文件数据获取到内表的更多相关文章

  1. 【ABAP系列】SAP ABAP 从FTP服务器读取文件到本地

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 从FTP服务器 ...

  2. [SAP ABAP开发技术总结]将文件存储到数据库表中,并可发送邮件

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. ORACLE 中写入txt文本与从Txt文件中读入数据 修改表结构

    --创建一个表 DROP TABLE TEST CASCADE CONSTRAINTS ; CREATE TABLE TEST(A VARCHAR(30),B VARCHAR(30)); --查看具体 ...

  4. java读取数据写入txt文件并将读取txt文件写入另外一个表

    package com.xsw.test; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.F ...

  5. [SAP ABAP开发技术总结]反射,动态创建内表、结构、变量

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. ABAP分享三 批量上传数据到内表简单示例

    tYPE-POOLS: truxs. DATA: BEGIN OF build, name(10) TYPE c,   age(3)   TYPE c,   sex(2)   TYPE c,   sp ...

  7. 适用函数ALSM_EXCEL_TO_INTERNAL_TABLE把excel文件传输到内表中

    FM:ALSM_EXCEL_TO_INTERNAL_TABLE 是上载Excel文件的一个函数,但是这个函数有两个限制. 一是每个CELL只能导入前50个字符,二是如果超过9999行,行号会初始化为从 ...

  8. 链接ftp,把文件或图片上传到ftp指定的文件夹中

    /******************************************************************** *  * * Filename : .java * Auth ...

  9. 【ABAP系列】SAP ABAP 实现FTP的文件上传与下载

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP ABAP 实现FTP的文 ...

  10. Mysql 8.0 导入txt文件操作(课程实验)

    一.实验准备: 1.实验设备:Dell laptop 7559; 2.实验环境:windows 10操作系统; 3.数据库版本:mysql 8.0; 二.实验目的: 1.将一个宠物表pet.txt文件 ...

随机推荐

  1. 解决用flex布局时内容溢出的问题

    1,2正常现象如下: 2,点击折叠图标 再点折叠 无图标了 解决:flex:1,width:0 就可以了

  2. springmvc关于通过使用路径占位符出现中文乱码解决办法

    springmvc接受json数据使用@GetMapping通过名称.通过对象,也可以通过路径.当使用路径占位符时,会出现中文乱码.此时,需要转换.即 @GetMapping("/girl5 ...

  3. C++ MFC学习 (二)

    使用向导创建MFC程序 1. 新建-> 选择 MFC -> MFC应用程序 ->下一步 2. 应用程序类型选择     选择单个文档,MFC标准  -> 下一步   3. 下一 ...

  4. [UnityShader]说厌了的遮挡显示

    首先是效果 这个其实有相当多的地方在说了,我就不嚼舌根了 大概原理:一个Shader两个Pass,第一个Pass不管深度,都渲染,但是不写入深度,第二个Pass几乎没有改动,因为后执行,会覆盖掉第一个 ...

  5. java读取虚拟串口数据

    语言:java 虚拟串口工具:Virtual Serial Port Driver Pro 9.0,选择pairing模块下,点击add virtual paring按钮即可创建串口对,还无法自定义o ...

  6. 在docker容器外,使用docker容器中的环境

    docker exec -it 334529194f22 /bin/bash -c 'pip install requests-2.22.0-py2.py3-none-any.whl' 其中33452 ...

  7. mysql数据库查看版本号

    1.在命令行登录mysql,即可看到mysql的版本号 [root@mysql02 bin]# ./mysql -uroot -pEnter password: Welcome to the MySQ ...

  8. DP4056软硬兼容TP4056,低成本

    概述 DP4056是一款单节锂离子电池恒流/恒压线性充电器,采用底 部带散热片的SOP8封装以及简单的外部应用电路,常适 合便携式设备应用,适合USB电源和适配器电源工作,内部采用防倒充电路,不需要外 ...

  9. 使用nvm实现自由切换nodejs版本

    首先安装使用nvm前需要删除卸载干净!!! 可以去GitHub安装最新的版本:https://github.com/nvm-sh/nvm 或者直接下载Windows的 releases版本安装:htt ...

  10. 从傻逼才做的大创开始的NLP学习

    先实名辱骂一下保加利亚电信的毕业生,留个源码,源码里把自己训好的模型删了,洗好的文本删了,什么都给删了,白茫茫一片真他妈干净. 简单说说目前在做的这个东西,姑且算是个项目吧: 给出一个问句,通过实体识 ...