网上很多FTP说明的文档,也很详细,写这玩意是备份一下:

注:有的系统需要配置FTP地址和端口,有的好像没有。。。

SM30->SAPFTP_SERVERS_V,默认端口21。

在做之前可以做个小测试:程序:RSFTP002

输入用户名,密码,地址,命令,RFC选择SAPFTPA

这个程序很简单的,可以点进去看看,就是开,运行,关。。。

对于那些目录较深的FTP,可以COPY出来,多加几个COMMAND

常用的命令就是cd xxx目录切换

nlist  显示列表

delete xxxxx删除文件

创建/删除文件夹的权限一般不做。

因为是N手了,所以函数有点乱:

1.FTP 连接:

FUNCTION zcrm_ftp_connect.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" REFERENCE(IV_FTP_USER) TYPE ZE_FTP_USER
*" REFERENCE(IV_HOST) TYPE ZE_FTP_HOST
*" EXPORTING
*" REFERENCE(EV_HANDLE) TYPE I
*" CHANGING
*" REFERENCE(IV_PASSWORD) TYPE ZE_FTP_PW
*" EXCEPTIONS
*" NOT_CONNECTED
*"----------------------------------------------------------------------
CONSTANTS cons_key TYPE i VALUE .
DATA:lv_slenth TYPE i.
* 连接FTP服务器
lv_slenth = STRLEN( iv_password ). CALL FUNCTION 'HTTP_SCRAMBLE'
EXPORTING
SOURCE = iv_password
sourcelen = lv_slenth
key = cons_key
IMPORTING
destination = iv_password. * Open the ftp server.
CALL FUNCTION 'FTP_CONNECT'
EXPORTING
user = iv_ftp_user
password = iv_password
host = iv_host
rfc_destination = 'SAPFTPA'
IMPORTING
handle = ev_handle
EXCEPTIONS
not_connected =
OTHERS = .
IF sy-subrc NE .
MESSAGE e007(zhntcrm01) RAISING not_connected.
ENDIF. ENDFUNCTION.

2.文件上传:

FUNCTION zcrm_zsv3_to_ftp.
*"----------------------------------------------------------------------
*"*"Local Interface:
*" IMPORTING
*" VALUE(PROCESS_TYPE) TYPE CRMT_PROCESS_TYPE
*" VALUE(XSTRING) TYPE XSTRING
*" VALUE(FILETYPE) TYPE STRING
*" VALUE(DATE) TYPE DATUM
*" EXPORTING
*" VALUE(MESSAGE) TYPE STRING
*"----------------------------------------------------------------------
DATA:lv_xstring TYPE xstring.
DATA:lv_len TYPE i.
DATA lv_handle TYPE i.
DATA lv_fname TYPE char100.
DATA: lv_user TYPE ze_ftp_user VALUE 'CRM'.
DATA lv_password TYPE ze_ftp_pw VALUE 'xxxxxxxxxxx'.
DATA:lv_host TYPE ze_ftp_host VALUE 'xx.xx.x.xx'.
DATA:gt_tab TYPE TABLE OF blob,
gw_tab LIKE LINE OF gt_tab. CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = xstring
IMPORTING
output_length = lv_len
TABLES
binary_tab = gt_tab. CALL FUNCTION 'ZCRM_FTP_CONNECT'
EXPORTING
iv_ftp_user = lv_user
iv_host = lv_host
IMPORTING
ev_handle = lv_handle
CHANGING
iv_password = lv_password
EXCEPTIONS
not_connected =
OTHERS = .
IF sy-subrc <> .
message = 'Connect error'.
EXIT.
ENDIF. CONCATENATE '/CRM/Dealer Refund/Get Refund Order/'
'C506810'
date '.' filetype INTO lv_fname. CALL FUNCTION 'FTP_R3_TO_SERVER'
EXPORTING
handle = lv_handle
fname = lv_fname
blob_length = lv_len
TABLES
blob = gt_tab[]
EXCEPTIONS
tcpip_error =
command_error =
data_error =
OTHERS = .
IF sy-subrc <> .
message = 'File Upload Fail'.
ENDIF. CALL FUNCTION 'FTP_DISCONNECT'
EXPORTING
handle = lv_handle. ENDFUNCTION.

其中目录+文件名+FTP_R3_TO_SERVER  上传文件到FTP目录

其中目录+文件名+FTP_SERVER_TO_R3  下载FTP目录文件

对于那种使用命令的,需要可以直接参考标准程序002代码

对于一些需要看到FTP上传记录的需求,可以新建一个表:文件名,文件类型,日期,时间,用户名。。。这个表在展示和下载删除的时候能够精确的执行下载和删除文件。

函数使用十一:FTP的更多相关文章

  1. jQuery 核心函数 (十一)

    函数 描述 jQuery() 接受一个字符串,其中包含了用于匹配元素集合的 CSS 选择器. jQuery.noConflict() 运行这个函数将变量 $ 的控制权让渡给第一个实现它的那个库.

  2. max,min,Zip函数(十一)

    zip函数,拉链,传两个有序的参数,将他们一一对应为元祖形式 max,min比较默认比较一个元素,处理的是可迭代对象,相当于for循环取出每个元素进行比较,注意:不同类型之间不可比较 #!/usr/b ...

  3. 函数使用十一:BAPI_BANK_CREATE

    FI01创建银行主数据: BAPI:BAPI_BANK_CREATE *&----------------------------------------------------------- ...

  4. PHP FTP 函数

    PHP FTP 简介 FTP 函数通过文件传输协议 (FTP) 提供对文件服务器的客户端访问. FTP 函数用于打开.登录以及关闭连接,同时用于上传.下载.重命名.删除及获取文件服务器上的文件信息.不 ...

  5. PHP FTP函数

    PHP FTP 函数 PHP FTP 简介 FTP 函数通过文件传输协议 (FTP) 提供对文件服务器的客户端访问. FTP 函数用于打开.登录以及关闭连接,同时用于上传.下载.重命名.删除及获取文件 ...

  6. 使用python操作FTP上传和下载

    函数释义 Python中默认安装的ftplib模块定义了FTP类,其中函数有限,可用来实现简单的ftp客户端,用于上传或下载文件,函数列举如下 ftp登陆连接 from ftplib import F ...

  7. PHP常用函数大全

    usleep() 函数延迟代码执行若干微秒.unpack() 函数从二进制字符串对数据进行解包.uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID.time_sleep_until() ...

  8. PHP常用函数备用

    刚学习php的时候,我也为记忆php函数苦恼不已.认为干嘛记忆这么枯燥无味的东西呢?用的时候查一下手册不就行了吗?但是当时因为身在辅导机构,还是记忆了一大堆自己并不感兴趣的函数. 由此就想起来,小的时 ...

  9. PHP常用函数大全。

    php usleep() 函数延迟代码执行若干微秒. unpack() 函数从二进制字符串对数据进行解包. uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. time_sleep_ ...

随机推荐

  1. Hadoop【单机安装-测试程序WordCount】

    Hadoop程序说明,就是创建一个文本文件,然后统计这个文本文件中单词出现过多少次! (MapReduce 运行在本地   启动JVM ) 第一步    创建需要的文件目录,然后进入该文件中进行编辑 ...

  2. Linux(CentOS)上面搭建Nginx环境

    总体上来说,Linux 这个系统其实挺好用的 除了看不见界面,但是用起来确实是比Window好用太多了,不废话了,直接说搭建环境的步骤! 安装Nginx 编译运行时的环境 参考博客:http://ww ...

  3. 17秋 SDN课程 第一次作业

    SDN第一次作业 你会选择作 网络编程 方向的程序员吗?为什么? 有可能.原因如下: 1.我的研究与网络密切相关: 2.SDN侧重软件实现,自然涉及socket等网络编程知识,属于基本功: 3.市场. ...

  4. Newtonsoft.Json 去掉\r\n

    itemKindList.ToString(Newtonsoft.Json.Formatting.None)

  5. 转 lightmap

    小记一下用法与问题,时更 surface shader就不用操心了,自带lightmap计算 主要是vertex fragment shader部分 Unity5 bake light map有三种情 ...

  6. vue自定义错误界面

    方案一: 当输入错误链接错误或者找不到页面,在router里可以定义一个404页面,具体可以这样做:在routes里面这样写: { path:'*', component:error, name:'e ...

  7. [原][osg]osgconv浅析

    查看osgconv.cpp main函数在533行 osg::ArgumentParser arguments(&argc,argv); //........一堆功能不管,先看一下文件读写 F ...

  8. 大话WebRTC的前世今生

    音视频的历史 音视频可以说是人类与生俱来的需求,人一出生就要用耳朵听,用眼睛看.中国的古代神话中为此还专门设置了两位神仙(千里眼和顺风耳),他们可以听到或看到千里之外的声音或景像. 为了解决听的远和看 ...

  9. 学习笔记14—Python error集

    1.Can't broadcast input array from shape (3,1) into shape (3,) resolution:    V[k:m,k] = v; v has sh ...

  10. Linux修改hostname时/etc/hosts、/etc/sysconfig/network ,hostname,三者的区别和联系

    [root@localhost /]# cat /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.l ...