*程序逻辑结构

*1. 查询FTP链接配置信息表获取源FTP及目标FTP登陆信息

*2. 建立源系统FTP链接

*3. 将源FTP服务器传输编码方式转换为ASCII

*4. 建立目标系统FTP链接

*5. 将目标FTP服务器传输编码方式转换为ASCII

*6. 将传输文件列表中源FTP目录下的源文件名重命名

*7. 关闭源FTP链接

*8. 关闭目标FTP链接

*9. 关闭RFC远程链接

配置表

参数

定义

查询获取登录信息

建立链接

转码

将传输文件列表中源FTP目录下的源文件名重命名

关闭源 链接

代码:

function zlm_frpmt_ftp_rename.

*"----------------------------------------------------------------------

*"*"Local Interface:

*"  IMPORTING

*"     REFERENCE(I_SOURCE_NAME) TYPE  CHAR50

*"     REFERENCE(I_NEW_NAME) TYPE  CHAR40

*"     REFERENCE(I_DES_NAME) TYPE  CHAR100

*"     REFERENCE(I_DEST) TYPE  CHAR10 OPTIONAL

*"  EXCEPTIONS

*"      FILE_IS_NOT_FOUND

*"      FTP_CONNECT_FAILD

*"      FTP_CHANGE_CODE_FAILD

*"      FTP_CLOSE_FAILD

*"      CAN_NOT_GET_CONNECTION_INFOR

*"      FTP_RUN_RENAME_COMMAND_FAILD

*"----------------------------------------------------------------------

*程序逻辑结构

*1. 查询FTP链接配置信息表获取源FTP及目标FTP登陆信息

*2. 建立源系统FTP链接

*3. 将源FTP服务器传输编码方式转换为ASCII

*4. 建立目标系统FTP链接

*5. 将目标FTP服务器传输编码方式转换为ASCII

*6. 将传输文件列表中源FTP目录下的源文件名重命名

*7. 关闭源FTP链接

*8. 关闭目标FTP链接

*9. 关闭RFC远程链接

*-----------------------------------------------------------------------

**************************工作区声明区域********************************

types: begin of text,

line(120) type c,

end of text.

data:

l_wa_login        type zlm_login_detail.                        "FTP登陆信息配置结构

*        l_wa_file_list    TYPE zlm_file_list.                           "传输文件结构

***************************内表声明区域*********************************

data:

l_tab_result       type table of text with header line.         "返回文本

***************************变量声明区域*********************************

data:

l_handle_s         type i,                                       "源FTP连接句柄

l_handle_d         type i,                                       "目标FTP连接句柄

l_dest             type zlm_dest,

l_str_length       type i,                                       "密码长度

l_key              type i value 26101957,                        "关键字

l_password(30)     type c.                                       "密码

data:

l_ftp_command(500) type c,                                      "ftp命令

l_file_dir         type string,

l_source_name      type string,                                 "源文件名

l_new_name         type string.                                 "新文件名

***************************常量声明区域*********************************

constants:

con_ftp_command_rename(6) type c value 'rename',

con_ascii(5)      type c value 'ascii'.

******************************程序逻辑区域******************************

*"---------------------------------------------------------------------*

*" 1. 查询FTP链接配置信息表获取源FTP及目标FTP登陆信息

*"---------------------------------------------------------------------*

if i_dest is initial.                                             "如果输入参数不为空值

l_dest = 'SAPFTPA'.

else.

l_dest = i_dest.

endif.

select single * from zlm_login_detail into l_wa_login

where dest = l_dest.

if sy-subrc <> 0.

raise can_not_get_connection_infor.

endif.

*"---------------------------------------------------------------------*

*" 2. 建立源系统FTP链接

*"---------------------------------------------------------------------*

l_str_length = strlen( l_wa_login-s_password ).

call function 'HTTP_SCRAMBLE'

exporting

source      = l_wa_login-s_password                               "密码

sourcelen   = l_str_length                                        "长度

key         = l_key                                               "关键字

importing

destination = l_password.                                         "密码

call function 'FTP_CONNECT'

exporting

user            = l_wa_login-s_username                           "用户名

password        = l_password                                      "密码

host            = l_wa_login-s_hostip                             "IP地址

rfc_destination = l_wa_login-dest                                 "RFC逻辑目标

importing

handle          = l_handle_s                                      "源FTP连接句柄

exceptions

not_connected   = 1.

if sy-subrc <> 0.

raise ftp_connect_faild.

endif.

*"---------------------------------------------------------------------*

*" 3. 将源FTP服务器传输编码方式转换为ASCII

*"---------------------------------------------------------------------*

call function 'FTP_COMMAND'

exporting

handle  = l_handle_s                                              "源FTP连接句柄

command = con_ascii                                               "编码方式

tables

data    = l_tab_result                                            "返回文本

exceptions

others  = 1.

if sy-subrc <> 0.

raise ftp_change_code_faild.

endif.

*"---------------------------------------------------------------------*

*" 4. 建立目标系统FTP链接

*"---------------------------------------------------------------------*

l_str_length = strlen( l_wa_login-p_password ).

call function 'HTTP_SCRAMBLE'

exporting

source      = l_wa_login-p_password                               "密码

sourcelen   = l_str_length                                        "长度

key         = l_key                                               "关键字

importing

destination = l_password.                                         "密码

call function 'FTP_CONNECT'

exporting

user            = l_wa_login-p_username                           "用户名

password        = l_password                                      "密码

host            = l_wa_login-p_hostip                             "IP地址

rfc_destination = l_wa_login-dest                                 "RFC逻辑目标

importing

handle          = l_handle_d                                      "目标FTP连接句柄

exceptions

not_connected   = 1.

if sy-subrc <> 0.

raise ftp_connect_faild.

endif.

*"---------------------------------------------------------------------*

*" 5. 将目标FTP服务器传输编码方式转换为ASCII

*"---------------------------------------------------------------------*

call function 'FTP_COMMAND'

exporting

handle  = l_handle_d                                              "目标FTP连接句柄

command = con_ascii                                               "编码方式

tables

data    = l_tab_result                                            "返回文本

exceptions

others  = 1.

if sy-subrc <> 0.

raise ftp_change_code_faild.

endif.

*"---------------------------------------------------------------------*

*" 6. 将传输文件列表中源FTP目录下的源文件名重命名

*"---------------------------------------------------------------------*

*   读取FTP上文件路径

select single des_addr into l_file_dir

from zftp_config

where des_name = i_des_name.

if sy-subrc <> 0.

raise file_is_not_found.

endif.

*   拼接源文件全路径

concatenate l_file_dir

i_source_name into l_source_name.

*   拼接新文件全路径

concatenate l_file_dir

i_new_name    into l_new_name.

*   拼接ftp_command文件重命名命令

concatenate con_ftp_command_rename

l_source_name

l_new_name

into l_ftp_command

separated by space.

*   启动FTP命令

call function 'FTP_COMMAND'

exporting

handle  = l_handle_d                                              "目标FTP连接句柄

command = l_ftp_command                                               "编码方式

tables

data    = l_tab_result                                            "返回文本

exceptions

others  = 1.

if sy-subrc <> 0.

raise ftp_run_rename_command_faild.

endif.

*"---------------------------------------------------------------------*

*" 7. 关闭源FTP链接

*"---------------------------------------------------------------------*

call function 'FTP_DISCONNECT'

exporting

handle = l_handle_s.                                              "源FTP连接句柄

*"---------------------------------------------------------------------*

*" 8. 关闭目标FTP链接

*"---------------------------------------------------------------------*

call function 'FTP_DISCONNECT'

exporting

handle = l_handle_d.                                              "目标FTP连接句柄

*"---------------------------------------------------------------------*

*" 9. 关闭RFC远程链接

*"---------------------------------------------------------------------*

call function 'RFC_CONNECTION_CLOSE'

exporting

destination = l_dest                                              "RFC远程连接

exceptions

others      = 1.

if sy-subrc <> 0.

raise ftp_close_faild.

endif.

endfunction.

java ftp 重命名文件_FTP服务器文件重命名相关推荐

  1. java利用shh2 读取远程服务器文件/删除服务器文件

    maven引入 <!-- 读取远程服务器文件--><!-- shh2 --><dependency><groupId>ch.ethz.ganymed&l ...

  2. 读服务器文件,读取服务器文件

    读取服务器文件 内容精选 换一换 客户端IP指的是访问者(用户设备)的IP地址.在Web应用开发中,通常需要获取客户端真实的IP地址.例如,投票系统为了防止刷票,需要通过获取客户端真实IP地址,限制每 ...

  3. rtx服务器设置 文件,rtx 服务器 文件传输 配置

    rtx 服务器 文件传输 配置 内容精选 换一换 该任务指导用户使用Loader将数据从HBase导出到SFTP服务器.创建或获取该任务中创建Loader作业的业务用户和密码.确保用户已授权访问作业执 ...

  4. 服务器文件监控,服务器文件监控

    服务器文件监控 内容精选 换一换 云服务器无法访问文件系统,提示被拒绝,导致该云服务器的所有业务异常.原因1:文件系统状态异常.原因2:云服务器在强制umount之后,无法挂载.根据可能原因进行故障排 ...

  5. 电脑服务器上复制文件,远程服务器文件复制到本地电脑上

    远程服务器文件复制到本地电脑上 内容精选 换一换 R-Studio这个软件是Windows电脑和Windows服务器上都能运行的.可以恢复Windows文件系统和Linux文件系统的绝好软件,我试过了 ...

  6. 设置路径是服务器上的文件,设置服务器文件路径

    设置服务器文件路径 内容精选 换一换 为了防止您的主机被勒索病毒侵害,请创建防护策略,将重点防御的文件添加到防护策略的监控路径中,并启动机器学习.机器学习会自动聚类并收集该策略下的所有服务器的正常进程 ...

  7. asp.net服务器之间文件,aspnet 服务器文件

    aspnet 服务器文件 内容精选 换一换 本节操作介绍本地Linux操作系统主机通过SCP向Linux云服务器传输文件的操作步骤.登录管理控制台,在ECS列表页面记录待上传文件的云服务器的弹性公网I ...

  8. 群晖传文件到服务器,文件上传到群晖服务器

    文件上传到群晖服务器 内容精选 换一换 监控数据上报功能可以将系统中采集到的监控数据写入到文本文件,并以FTP或SFTP的形式上传到指定的服务器中.使用该功能前,管理员需要在FusionInsight ...

  9. 服务器连接文件,连接服务器文件

    连接服务器文件 内容精选 换一换 Atlas 200 DK开发者板支持通过USB端口或者网线与Ubuntu服务器进行连接,连接示例图如图1所示.Atlas 200 DK连接Ubuntu服务器有以下场景 ...

  10. 服务器的权限文件夹,服务器文件夹权限设置方法

    服务器文件夹权限设置方法 内容精选 换一换 当出现如下几种日志时,说明当前用户对当前文件或文件夹没有操作权限.现象1:  现象2:  现象3:  现象4:  当前用户对当前文件或文件夹没有操作权限.采 ...

最新文章

  1. GridSearchCV 与 RandomizedSearchCV 用法注意随机搜索可以自定义打分 or loss 函数
  2. CTF-RSA-tool 安装全过程
  3. pct_change()
  4. python爬虫scrapy步骤mac系统_python scrapy简单爬虫记录(实现简单爬取知乎)
  5. 【虚拟化】docker构建私有仓库,上传镜像至私有仓库
  6. python链式赋值与C++赋值的结果比较与分析
  7. macbook配置java环境变量_Mac系统配置JDK环境变量
  8. ARM中断分析之三:WinCE驱动的中断分析
  9. ReportViewer教程(15)-矩阵报表-5
  10. “3D几何与视觉技术”全球在线研讨会第五期~隐式3D形状表示学习
  11. Fckeditor漏洞汇总
  12. 迭代器——STL关键所在
  13. 抓取网络源码python_使用Python进行网络抓取的新手指南
  14. css不定高度实现垂直居中
  15. Django之POST GET与前后端交互
  16. 《扩展 jQuery》——2.3 总结
  17. ubuntu server 18.04 和 20.04 安装 RabbitMQ
  18. struts2之数据处理的三种方式
  19. Win32程序和控制台应用程序的项目互转设置
  20. Layui官网文档备份, Layui文档站点,LayuiAdmin

热门文章

  1. SQL Sever — 设置外键+组合键(唯一性约束)、修改取值范围、设置某列的默认值
  2. C语言 — 数据类型,基本整型所占字节数
  3. java安全入门篇之接口验签(原创)
  4. P3986 斐波那契数列
  5. JAVA练手--数组
  6. Linux运维六:用户管理及用户权限设置
  7. 《大道至简》第一章读后感(java伪代码)
  8. javascript面试题(一)
  9. 利用node.js以及express框架初始化服务端
  10. KVM详解(一)——KVM基础知识