啥都不说,直接上代码

*******  如果无法链接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. 前端JavaScript深拷贝的三种方法,看了不后悔!!!

    深拷⻉ 深拷⻉开辟⼀个新的栈,两个对象属完成相同,但是对应两个不同的地址,修改⼀个对象的属性,不会 改变另⼀个对象的属性 常⻅的深拷⻉⽅式有: _.cloneDeep() jQuery.extend( ...

  2. python获取上周的起始日期

    import datetime def get_date_of_last_week(form='%Y-%m-%d'): """ 获取上周开始结束日期 :param for ...

  3. vue学习 第三天css基础

    1.emment语法(作用:提升html和css书写速度) 2. 复合选择器 1)由两个或多个基础选择器,通过不同的方式组合而成的,可以更准确.更高效的选择目标元素(标签) 2)后代选择器.子元素选择 ...

  4. mysql修改密码遇到的问题

    在docker上安装了 mysql 容器,mysql镜像是8.0+版本 修改密码语句: 只针对本机生效 alter user "root"@'localhost' identifi ...

  5. Docker - Can't resolve instance hostname.

    Docker容器无法解析主实例主机名 在为redis集群搭建哨兵的时候遇到这个异常 解决方案:在配置文件中添加: ALLOW_EMPTY_PASSWORD=yes 参考文档:linux - redis ...

  6. 一次eureka的事故

    本地起了一个微服务(不知道怎么起的),导致注册到微服务上了,不知所措.. 想了下,杀死对应微服务的进程id就可以了(记不住啊!!)

  7. 洛谷 P4048更新题面

    [JSOI2010]冷冻波 题目描述 WJJ 喜欢"魔兽争霸"这个游戏.在游戏中,巫妖是一种强大的英雄,它的技能 Frozen Nova 每次可以杀死一个小精灵.我们认为,巫妖和小 ...

  8. PHP日志组件Monolog的使用

    1.首先安装日志组件 composer require monolog/monolog 2.创建日志类 3.使用 4.结果  

  9. MapReduce原理——Shuffle机制

    在Map方法之后,Reduce方法之前的数据处理过程称之为Shuffle. Map方法输出的数据会获得对应的分区,进入环形缓冲区(缓冲区一半写索引,另一半写数据).数据达到缓冲区的80%会发生溢写.在 ...

  10. Java控制流程(复习)

    流程控制语句 流程控制语句包括:顺序结构,分支结构,循环结构 分支结构 if语句: 第一种: if(关系表达式){ 语句体 } else{ 语句体2 } 第二种: if (){ } else if ( ...