zoukankan      html  css  js  c++  java
  • FTP

    ...忘了写FTP,今天看到个FTP操作才想起来。。。玛德制杖

    RSFTP002 执行 FTP 命令
    RSFTP003 FTP 放置/获取测试
    RSFTP004 FTP 复制
    RSFTP006 FTP 命令列表
    RSFTP007 测试 FB:FTP_SERVER_TO_R3 / FTP_R3_TO_SERVER
    RSFTP009 通过验证测试 FTP 放置

    02执行command,03put/get

    一般常用的就是上传文件到FTP和下载。

    FUNCTION ZCRM_SEND_PDF_TO_FTP.
    *"----------------------------------------------------------------------
    *"*"Local Interface:
    *"  IMPORTING
    *"     VALUE(OBJECT_ID) TYPE  CRMT_OBJECT_ID OPTIONAL
    *"     VALUE(GUID) TYPE  CRMT_OBJECT_GUID OPTIONAL
    *"----------------------------------------------------------------------
      DATA:LV_XSTRING TYPE XSTRING.
      DATA:LV_LEN TYPE I.
      DATA LV_HANDLE TYPE I.
      DATA LV_FNAME TYPE CHAR100.
      DATA:LV_SF TYPE TDSFNAME VALUE 'ZCRM_SERVICE_04'.
      DATA: LV_USER TYPE ZE_FTP_USER VALUE 'crm'.
      DATA LV_PASSWORD TYPE ZE_FTP_PW VALUE 'crm'.
      DATA:LV_HOST TYPE ZE_FTP_HOST VALUE '172.16.53.48'.
      DATA:GT_TAB TYPE TABLE OF BLOB,
           GW_TAB LIKE LINE OF GT_TAB.
    
      IF OBJECT_ID IS INITIAL.
        WAIT UP TO 5 SECONDS.
        SELECT SINGLE A~OBJECT_ID B~ZZCON_FAX INTO (OBJECT_ID,LV_FNAME)
           FROM CRMD_ORDERADM_H AS A
          LEFT JOIN CRMD_SERVICE_H AS B
          ON A~GUID = B~GUID
          WHERE A~GUID = GUID.
      ELSE.
        SELECT SINGLE A~OBJECT_ID B~ZZCON_FAX INTO (OBJECT_ID,LV_FNAME)
       FROM CRMD_ORDERADM_H AS A
      LEFT JOIN CRMD_SERVICE_H AS B
      ON A~GUID = B~GUID
      WHERE A~OBJECT_ID = OBJECT_ID.
      ENDIF.
    
      CALL FUNCTION 'ZSRV_PRINT_TO_PDF'
        EXPORTING
          IV_SAMRTFORM = LV_SF
          IV_GUID      = GUID
          IV_OBJECT_ID = OBJECT_ID
        IMPORTING
          FILE         = LV_XSTRING.
    
      CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
        EXPORTING
          BUFFER        = LV_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 = 1
          OTHERS        = 2.
      IF SY-SUBRC <> 0.
        EXIT.
      ENDIF.
    
    
      CONCATENATE LV_FNAME 'XXXX.pdf' 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   = 1
          COMMAND_ERROR = 2
          DATA_ERROR    = 3
          OTHERS        = 4.
      IF SY-SUBRC <> 0.
      ENDIF.
    
      CALL FUNCTION 'FTP_DISCONNECT'
        EXPORTING
          HANDLE = LV_HANDLE.
    
    
    
    ENDFUNCTION.
    ZSRV_PRINT_TO_PDF是获取SMARTFORMS打印的FDP流
    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 26101957.
      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   = 1
          OTHERS          = 2.
      IF sy-subrc NE 0.
        MESSAGE e007(zhntcrm01) RAISING not_connected.
      ENDIF.
    
    
    
    
    ENDFUNCTION.
  • 相关阅读:
    微信授权登录
    mpvue 试水的一天
    小程序请求接口统一封装到一个js文件中
    工作中vue项目前后端分离,调用后端本地接口出现跨域问题的完美解决
    百度小程序授权更好体验
    关于智能小程序网络请求封装
    vue 开发webapp 手机返回键 退出问题
    MySQL解决存入数据库和取出数据库时间格式问题
    关于小程序授权更好体验
    关于vue项目中在js中引入图片问题
  • 原文地址:https://www.cnblogs.com/sapSB/p/6722015.html
Copyright © 2011-2022 走看看