Wednesday, December 4, 2013

CREATE XML FILE and SEND TO FTP SERVER


REPORT ZXML_FILE .

type-pools: ixml.
tables: vbak.

types: begin of ty_vbak,
       vbeln type vbak-vbeln,
       auart type vbak-auart,
      end of ty_vbak.

data: ty_ftp type standard table of zftpinfo,
      wa_ftp type zftpi,
      l_slen type i,
      lv_user(30) type c,
      lv_pwd(30) type c,
      c_key type i value 26101957.

data: begin of t_title occurs 0,
      title(4000) type c,
      end of t_title.
data: temp_file(200) type c.
data: to_file type char30000.
data: c_gw type string.
data: mi_handle type i.

data: t_vbak type ty_vbak occurs 0 with header line.

selection-screen begin of block b1 with frame title text-001.
select-options: so_num for vbak-vbeln.
selection-screen end of block b1.

*START OF SELECTION
start-of-selection.

select
  vbeln auart
  from vbak into corresponding fields of table t_vbak
  where vbeln in so_num.

"" FOR GETTING FTP SEVER CONNECTION INFO FROM MAINTAING TABLE
select * from zftpinfo client specified
    into corresponding fields of table ty_ftp
    where mandt = sy-mandt
    and   zcountry = 'BD'.

  clear wa_ftp.
  read table ty_ftp into wa_ftp index 1.

*----CONNECTING TO FTP SERVER.
  perform ftp_connect using wa_ftp-zuser wa_ftp-zpasswd wa_ftp-zhost.

*----CHECKING SUCCESSFUL FTP CONNECTION
  check sy-subrc = 0.

    if t_vbak[] is not initial.
    perform c_xml. " FOR CREATING XML FILE
    endif.

form c_xml.

  clear t_title[].
 "" SERVER DESTINATION FILE PATH EX: /.../.../.../
  concatenate 'SERVER FILE PATH' 'SOINFO' '.xml'  into to_file.

*----BUILDING THE XML FILE
  t_title-title = '<?xml version="1.0" encoding="UTF-8"?>'.
  append t_title.
  t_title-title = '<n1:SalesOderInfo xmlns:n1="SalesOderInfo" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">'.
  append t_title.

  loop at t_vbak.
    concatenate '<SONUM>' t_vbak-vbeln '</SONUM>' into temp_file.
    t_title-title = temp_file.
    append t_title.
    clear temp_file.

    concatenate '<DOCTYPE>' t_vbak-auart '</DOCTYPE>' into temp_file.
    t_title-title = temp_file.
    append t_title.
    clear temp_file.

    endloop.

    t_title-title = '</n1:SalesOderInfo>'.
    append t_title.

  perform r3_ftp using to_file.

endform.



form r3_ftp using to_file.
  call function 'FTP_R3_TO_SERVER'
    exporting
      handle         = mi_handle
      fname          = to_file          "file path of destination system
      character_mode = 'X'
    tables
      text           = t_title
    exceptions
      tcpip_error    = 1
      command_error  = 2
      data_error     = 3
      others         = 4.
endform.

form ftp_connect using lv_user lv_pwd lv_host.

  l_slen = strlen( lv_pwd ).

  call function 'HTTP_SCRAMBLE'
    exporting
      source      = lv_pwd
      sourcelen   = l_slen
      key         = c_key
    importing
      destination = lv_pwd.

  call function 'FTP_CONNECT'
    exporting
      user            = lv_user "Your SAP-UNIX FTP user name (case sensitive)
      password        = lv_pwd  "Your SAP-UNIX server host name (case sensitive)
      host            = lv_host
      rfc_destination = 'SAPFTPA'
    importing
      handle          = mi_handle
    exceptions
      not_connected   = 1
      others          = 2.

endform.

5 comments:

  1. It was so nice article and useful to SAP learners. we also provide all SAP Courses online training our Cubtraining is leader in providing Software Training

    ReplyDelete
  2. We provide sap abap technical course, call us to know more about us and join with us.
    Call them at 8122241286 in chennai.
    www.thecreatingexperts.com

    ReplyDelete
  3. SAP ABAP training is provided in CHENNAI.

    THE CREATING EXPERTS is one of the leading trainer in SAP who provides real time training

    http://thecreatingexperts.com/sap-abap-training-in-chennai/

    contact 8122241286

    ReplyDelete