SAP FTP上传出现的几个小问题归纳

原创 2016年03月07日 10:00:16

1.上传CSV文件的时候分隔符是分号,导致传过去的一行数据全部在第一列的第一格里面。在上传之前转换成逗号;

2.上传文件出现中文乱码,网上出现中文乱码的情况很多,这里我只记录自己遇到的。中文传到FTP的时候显示#;

CALL FUNCTION 'SCMS_TEXT_TO_BINARY'
    EXPORTING
      ENCODING      '8400'
    IMPORTING
      output_length blob_length
    TABLES
      text_tab      text   " input
      binary_tab    in_data" output
    EXCEPTIONS
      failed        1
      OTHERS        2.

此时只需要在传递文件之前转码,encoding = 8400即可  这是在RZ10 的install/codepage/appl_server = 8400的情况下还要注明的,不管该参数的结果是否是8400,都需要转码。

3.SAP上传文件到ftp需要后台执行的时候, rfc_destination 'SAPFTPA'不能写成SAPFTP。

FOR EXAMPLE:(该程序需要修改才能激活)

TYPE-POOLS truxs.
DATAmi_key TYPE VALUE 26101957,
     mi_handle TYPE i,
     slen TYPE .
DATAcsvtab TYPE truxs_t_text_data .
DATA:csvtab1 TYPE truxs_t_text_data WITH HEADER LINE.

DATA filename(128.

DATA:BEGIN OF RES OCCURS 0,
LINE(100TYPE C,
END OF RES.

CONCATENATE  sy-datum 'test.csv' INTO filename .

DATAsuser(30TYPE c,
      spwd(30)  TYPE c,
      shost(64TYPE c.


suser 'test'.
spwd 'test'.
shost '10.20.30.40'

DATAin_data TYPE STANDARD TABLE OF bapiconten."like csvtab OCCURS 0.
DATAtext TYPE lvc_t_1022 WITH HEADER LINE.
DATA:blob_length TYPE i.
DATA:b(20TYPE c.


slen STRLENspwd ).



TYPES:BEGIN OF ty_itab,
*    mandt TYPE zyyzb035hz-mandt,
  BUDAT_MKPF(8TYPE c,
  KUNNR     TYPE zyyzb035hz-KUNNR,
  NAME1     TYPE zyyzb035hz-NAME1,
  KTEXT     TYPE zyyzb035hz-KTEXT,
  ZLX      TYPE zyyzb035hz-zlx,
  ZBM       TYPE zyyzb035hz-zbm,
  ZQU       TYPE zyyzb035hz-zqu,
 ZDRXS(20)     TYPE c,
 ZDYXS(20)     TYPE c,
 ZDNXS(20)     TYPE c,
  END OF ty_itab.

DATA:gw_itab TYPE TABLE OF ty_itab.
DATA:gs_itab TYPE ty_itab.
FIELD-SYMBOLS <fs>  TYPE ty_itab.
FIELD-SYMBOLS <hs> TYPE zyyzb035hz.

LOOP AT lt_itab1 ASSIGNING <hs>.
  gs_itab-BUDAT_MKPf <hs>-BUDAT_MKPf.
  gs_itab-KUNNR    =         <hs>-KUNNR .
  gs_itab-NAME1     =        <hs>-NAME1 .
  gs_itab-KTEXT      =       <hs>-KTEXT .
  gs_itab-ZLX         =      <hs>-ZLX  .
  gs_itab-ZBM          =     <hs>-ZBM  .
  gs_itab-ZQU           =    <hs>-ZQU .
  gs_itab-ZDRXS  <hs>-zdrxs.
  gs_itab-ZDYXS <hs>-zdyxs.
  gs_itab-ZDNXS <hs>-zdnxs.
  APPEND gs_itab to gw_itab.
  CLEAR gs_itab.

ENDLOOP.

LOOP AT gw_itab ASSIGNING <fs>.

  IF <fs>-ZDRXS < 0.
    b <fs>-ZDRXS.
    CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
      CHANGING
        value b.
    <fs>-zdrxs b.
  ENDIF.

  IF <fs>-ZDYXS < 0.
    b <fs>-ZDYXS.
    CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
      CHANGING
        value b.
    <fs>-zdyxs  b.

  ENDIF.

  IF <fs>-ZDNXS < 0.
    b <fs>-ZDNXS.
    CALL FUNCTION 'CLOI_PUT_SIGN_IN_FRONT'
      CHANGING
        value b.
    <fs>-zdnxs b.

  ENDIF.


ENDLOOP.


CALL FUNCTION 'SAP_CONVERT_TO_CSV_FORMAT'
  TABLES
    I_TAB_SAP_DATA       gw_itab
  CHANGING
    I_TAB_CONVERTED_DATA csvtab
  EXCEPTIONS
    CONVERSION_FAILED    1
    OTHERS               2.
IF SY-SUBRC <> 0.
* Implement suitable error handling here
ENDIF.



LOOP AT  csvtab INTO csvtab1.
  REPLACE ALL OCCURRENCES OF ',' in csvtab1 WITH ''.
  REPLACE ',' WITH ''  INTO csvtab1 LENGTH 1.
  CONDENSE csvtab1 NO-GAPS.
  APPEND csvtab1 to csvtab1.
ENDLOOP.
DATA a(400TYPE c.
'过帐日期,客户,XXX,XXX,XXX,XXX,XXX,XXX,XXX,XXX'.
APPEND to text.

LOOP AT csvtab1.
  a csvtab1.
*    REPLACE ';' WITH ''  INTO a LENGTH 1.
  REPLACE ';' WITH ','  INTO a LENGTH 1.
  REPLACE ';' WITH ','  INTO a LENGTH 1.
  REPLACE ';' WITH ','  INTO a LENGTH 1.
  REPLACE ';' WITH ','  INTO a LENGTH 1.
  REPLACE ';' WITH ','  INTO a LENGTH 1.
  REPLACE ';' WITH ','  INTO a LENGTH 1.
  REPLACE ';' WITH ','  INTO a LENGTH 1.
  REPLACE ';' WITH ','  INTO a LENGTH 1.
  REPLACE ';' WITH ','  INTO a LENGTH 1.
  CONDENSE NO-GAPS.
*
*     REPLACE ALL OCCURRENCES OF ',' in a WITH ';'.
*    REPLACE ';' WITH ','  INTO a LENGTH 5.
  APPEND to text.

ENDLOOP.


CALL FUNCTION 'HTTP_SCRAMBLE'
  EXPORTING
    SOURCE      spwd
    sourcelen   slen
    key         mi_key
  IMPORTING
    destination spwd.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

CALL FUNCTION 'FTP_CONNECT'
  EXPORTING
    user            suser
    password        spwd
    host            shost
    rfc_destination 'SAPFTPA' "SAPFTPA
  IMPORTING
    handle          mi_handle
  EXCEPTIONS
    not_connected   1
    OTHERS          2.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.



CALL FUNCTION 'SCMS_TEXT_TO_BINARY'
  EXPORTING
    ENCODING      '8400'
  IMPORTING
    output_length blob_length
  TABLES
    text_tab      text   " input
    binary_tab    in_data" output
  EXCEPTIONS
    failed        1
    OTHERS        2.



CALL FUNCTION 'FTP_COMMAND'
  EXPORTING
    HANDLE        mi_handle
    COMMAND       'cd SAP'" jmswechat/custom'
    COMPRESS      'N'
  TABLES
    DATA          RES  "result
  EXCEPTIONS
    COMMAND_ERROR 1
    TCPIP_ERROR   2.


CALL FUNCTION 'FTP_R3_TO_SERVER'
  EXPORTING
    handle         mi_handle
    fname          filename
    blob_length    blob_length
*   character_mode = 'X'
  TABLES
    blob           in_data.
*      text           = text.




IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.

CALL FUNCTION 'FTP_DISCONNECT'
  EXPORTING
    handle mi_handle
  EXCEPTIONS
    OTHERS 1.
IF sy-subrc <> 0.
  MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
         WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
 



SAP连接FTP服务器

SAP系统中连接FTP服务器需要配置表SAPFTP_SERVERS,在这个表中添加ftp服务器及端口,然后使用如下代码连接ftp服务器 constants cons_key ty...
  • wenyitao880901
  • wenyitao880901
  • 2017年08月22日 16:48
  • 393

FTP方式实现从FTP服务器取文件到SAP 服务器目录

项目中有以下接口场景: 通过后台作业,SAP ECC系统每天晚上从外部FTP服务器Get文本文件到SAP服务器目录/usr/sap//SYS/global/data,然后处理这些文件中的数据,在SA...
  • lyb_yt
  • lyb_yt
  • 2013年01月22日 14:48
  • 4444

SAP ABAP OLE 操作上传的EXCEL模板(转)

ABAP直接操作EXCEL实现数据处理。这里是用OLE实现操作EXCEL的。现在还有 DOI操作EXCEL等方法。以后用到再做介绍。此处不是直接生成EXCEL文件,而是从 服务器已经上传的EXCE...
  • champaignwolf
  • champaignwolf
  • 2016年08月19日 10:38
  • 2667

SAP FTP

 原地址:http://blog.csdn.net/sourcepp/article/details/8535684 项目中有以下接口场景: 通过后台作业,SAP ECC系统每天...
  • po908
  • po908
  • 2015年06月29日 10:34
  • 629

SAP ABAP转换特殊字符乱码

ABAP读取txt乱码,codepage使用8402解决。
  • wc250025
  • wc250025
  • 2017年08月23日 13:42
  • 1003

实现FTP的文件上传与下载

实现FTP的文件上传与下载
  • SAPmatinal
  • SAPmatinal
  • 2016年05月18日 09:03
  • 2295

dwz问题(本文主要是供个人学习成长之用,陈述的是本人在开发过程中遇到的几个小问题的总结,可能兼或插入一些网络资料)

dwz框架的简单介绍,以及自己在使用过程中遇到过的三个小问题: 1)两个Tab同时打开出现窜页问题,或影响分页的正常使用 2)排序不起作用问题 3)如何实现在弹出的对话框中,点击确认或是提交按钮后,自...
  • u013538390
  • u013538390
  • 2015年02月13日 10:05
  • 381

SAP ABAP 与FTP文件交互-进站 文件上传到FTP服务器

report z04ftp2. data: begin of ig_ftp_result occurs 0, line(100), end of ig_ftp_resul...
  • wanglei880526
  • wanglei880526
  • 2014年10月17日 10:50
  • 3537

工作中的一个小问题

今天同事看了一句我以前写的代码,用了三元运算符  PropertyScript.instance .isLifeFreeze = PropertyScript.instance .isLifeFree...
  • u010386327
  • u010386327
  • 2013年07月25日 18:06
  • 563

SAP FTP使用方法

*&----------------------------------------------------------------------**&FTP 的使用方法.*&  用法command: ...
  • chfeijj
  • chfeijj
  • 2007年10月24日 17:51
  • 1162
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:SAP FTP上传出现的几个小问题归纳
举报原因:
原因补充:

(最多只允许输入30个字)