网上很多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. awk 基础入门

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  2. 5、web站点架构模式简介及Nginx

    LB Cluster: 提升系统容量的方式: scale up:向上扩展 scale out:向外扩展 LVS工作在内核中,本身的数量不受套接字数量限制,利用LVS做调度器,优化得当的话,并发数量可以 ...

  3. CentOS7时间和日期的同步 (chrony和)

    CentOS 6版本,使用 hwclock CentOS 7版本,使用timedatectl 1.基本概念 1.1 GMT,UTC,CST,DST时间 世界标准时间 整个地球分为二十四时区,每个时区都 ...

  4. HashMap分析

    原文链接:http://www.cnblogs.com/chengxiao/p/6059914.html 一.什么是哈希表 在讨论哈希表之前,我们先大概了解下其他数据结构在新增,查找等基础操作执行性能 ...

  5. FreeCodeCamp----Intermediate Algorithm Scripting解法

    Finders Keepers 写一个 function,它浏览数组(第一个参数)并返回数组中第一个通过某种方法(第二个参数)验证的元素. 如果你被卡住了,记得开大招 Read-Search-Ask. ...

  6. CentOS6.5下搭建ftp服务器(三种认证模式:匿名用户、本地用户、虚拟用户)

    CentOS 6.5下搭建ftp服务器 vsftpd(very secure ftp daemon,非常安全的FTP守护进程)是一款运行在Linux操作系统上的FTP服务程序,不仅完全开源而且免费,此 ...

  7. [转]pugixml使用教程

    转自:https://www.cnblogs.com/ltm5180/p/3989125.html pugixml介绍 pugixml是一个高性能.轻量级并且简单易用的xml解析库,支持UTF8 en ...

  8. [osg][opengl]透视投影的参数Perspective

    gluPerspective这个函数指定了观察的视景体(frustum为锥台的意思,通常译为视景体)在世界坐标系中的具体大小,一般而言,其中的参数aspect应该与窗口的宽高比大小相同.比如说,asp ...

  9. SpringMVC获取页面表单参数的几种方式

      以下几种方式只有在已搭好的SpringMVC环境中,才能执行成功!      首先,写一个登陆页面和一个Bean类 <%@ page language="java" co ...

  10. DRF框架固定配置

    1.认证Authentication 可以在配置文件中配置全局默认的认证方案 REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( 'rest_ ...