• 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.
  • 相关阅读:
    L3-028 森森旅游 题解(最短路)
    Codeforces Round #717 (Div. 2) 题解(A-D)
    大爽Python入门教程 总目录
    Django笔记&教程 2-4 视图常用
    python一对一教程:Computational Problems for Physics chapter 1-B Code Listings 1.7
    python一对一教程:Computational Problems for Physics chapter 1 Code Listings
    b站个人直播年报【大爽歌作】 介绍与演示
    架构漫谈阅读笔记03
    架构漫谈阅读笔记02
    架构漫谈阅读笔记01
  • 原文地址:https://www.cnblogs.com/sapSB/p/6722015.html
Copyright © 2020-2023  润新知