Enterprise Resource Planning Portal ERPGenie.COM Enterprise Resource Planning Portal

   Advertise | BLOG

Web ERPGenie.COM

Home | Vote for us |

ERPGenie.COM -> SAP Technical -> ABAP -> Example code -> Transfer files to/from server

REPORT ZAPC0015.
   * File Transfer Utility ( pc<->app server )
   * Evaluation Version - Copyright ¸1998 Ken Greenwood
   *
   * This transfers sequential files from the application server
   * to your hard drive, or from your hard drive to the application server.
   *
   * View the readme on the installation CD for instructions on how to
   * use this program.
   *
   * This is the evaluation version. The registered version is avaliable
   * in Single-User License or Corporate Licenses.
   * Visit http://www.abap.net to purchase this product.
   * Note: The registered version transfers multiple files at a time.
   *
   *          This program is Copyright ¸1998 Ken Greenwood
   *                     http://www.abap.net
   *______________________________________________________________________
   tables:
       SSCRFIELDS. "
   data:
       IT(5000) OCCURS 100 WITH HEADER LINE.
   *-parameters----------------------------------------------------------*
   selection-screen:
       begin of block b1 with frame title text-004.
   parameters:
       sfn(128) obligatory lower case memory id z0s   " server file name
                default '/usr/sap/tmp/?',
       pfn(128) obligatory lower case memory id z0p   " pc file name
                default 'c:\temp\temp.txt',
       efn(128) obligatory lower case                 " editor file name
                DEFAULT 'notepad.exe'.
   selection-screen:
       skip,
       PUSHBUTTON /05(23) TEXT-001 USER-COMMAND ZGET, "Serv -> PC
       PUSHBUTTON  30(23) TEXT-002 USER-COMMAND ZPUT, "PC -> Serv
       PUSHBUTTON  55(23) TEXT-003 USER-COMMAND ZPAD, "Ver fichero
       end of block b1.
*-mainline------------------------------------------------------------*
*-events--------------------------------------------------------------*
   at selection-screen.
       case sscrfields-ucomm.
       when 'ZGET'.  perform getfrsrv.
       when 'ZPUT'.  perform puttosrv.
       when 'ZPAD'.  perform editfile.
       endcase.
   AT SELECTION-SCREEN ON VALUE-REQUEST FOR EFN.
     CALL FUNCTION 'WS_FILENAME_GET'
          EXPORTING
               DEF_FILENAME     = EFN
               DEF_PATH         = '/'
               MASK             = ',*.*,*.*.'
               MODE             = 'O'
               TITLE            = 'Get filename'
          IMPORTING
               FILENAME         = EFN
*              rc               =
          EXCEPTIONS
               INV_WINSYS       = 01
               NO_BATCH         = 02
               SELECTION_CANCEL = 03
               SELECTION_ERROR  = 04.
*-forms---------------------------------------------------------------*
   form editfile.
       data:
           exists value '0'.
       perform fileexists
           changing exists.
       if exists = '0'.
           refresh it.
           perform download.
           endif.
       perform runnotepad.
       endform.
*---------------------------------------------------------------------*
   form fileexists
       changing exists.
       call function 'WS_QUERY'
            exporting
                 filename       = pfn
                 query          = 'FE'     " file exists?
            importing
                 return         = exists
            exceptions
                 inv_query      = 1
                 no_batch       = 2
                 frontend_error = 3
                 others         = 4.
       endform.
*---------------------------------------------------------------------*
   form getfrsrv.
       refresh it.
       perform dsopen_input_text
           using sfn.
       perform xfer2it.
       perform download.
       perform runnotepad.
       endform.
*-forms---------------------------------------------------------------*
  form puttosrv.
       refresh it.
       perform upload.
       perform dsopen_output_text
          using sfn.
       perform xferfromit
           using sfn.
       endform.
*---------------------------------------------------------------------*
   form xferfromit
       using dsn.
       loop at it.
           perform dswrite
               using dsn
                     it.
           endloop.
       endform.
*---------------------------------------------------------------------*
   form xfer2it.
       while sy-subrc = 0.
           perform dsread
               using    sfn
               changing it.
           if sy-subrc <> 0.
               exit.
               endif.
           append it.
           endwhile.
       perform dsclose
           using sfn.
       endform.

*---------------------------------------------------------------------*
   form download.
       call function 'WS_DOWNLOAD'
            exporting
                 filename            = pfn
            tables
                 data_tab            = it
            exceptions
                 file_open_error     = 1
                 file_write_error    = 2
                 invalid_filesize    = 3
                 invalid_table_width = 4
                 invalid_type        = 5
                 no_batch            = 6
                 unknown_error       = 7
                 others              = 8.
      perform checkrc
           using 'WS_DOWNLOAD'.
       endform.
*---------------------------------------------------------------------*
   form runnotepad.
       data pgm(128).
       concatenate
           efn pfn into pgm
           separated by space.
       call function 'WS_EXECUTE'
            exporting
                 program        = pgm
            exceptions
                 frontend_error = 1
                 no_batch       = 2
                 prog_not_found = 3
                 illegal_option = 4
                 others         = 5.
       perform checkrc
           using 'WS_EXECUTE'.
       endform.

*---------------------------------------------------------------------*
   form upload.
       call function 'WS_UPLOAD'
            exporting
                 filename            = pfn
           tables
                 data_tab            = it
            exceptions
                 conversion_error    = 1
                 file_open_error     = 2
                 file_read_error     = 3
                 invalid_table_width = 4
                 invalid_type        = 5
                 no_batch            = 6
                 unknown_error       = 7
                 others              = 8.
       perform checkrc
           using 'WS_UPLOAD'.
       endform.
*---------------------------------------------------------------------*
   form writetoscrn.
       window starting at 5  3
              ending   at 90 15.
       loop at it.
           write it.
           endloop.
       endform.

*---------------------------------------------------------------------*
   form checkrc using n.
       if sy-subrc <> 0.
           write: / 'rc=', sy-subrc, 'from', n.
           stop.
           endif.
       endform.
*-macro-for-form-definition-------------------------------------------*
  define dsform_open.
       form dsopen_&1_&2 using
               dsn  type c.
           data msg(80).
           open dataset dsn for &1 in &2 mode message msg.
           if sy-subrc <> 0.
               message e001(zk) with 'Error opening' dsn msg.
               endif.
           endform.
       end-of-definition.
*---------------------------------------------------------------------*
  dsform_open input  text.
   dsform_open input  binary.
   dsform_open output text.
   dsform_open output binary.
*--------------------------------------------------------------------
   form dsread
       using    dsn type c
       changing rec.

       statics: rctr type i.

       read dataset dsn into rec.
       case sy-subrc.
       when 0.
           add 1 to rctr.
       when 4.
           message s001(zk) with rctr 'records read from' dsn.
       when others.
           message e001(zk) with 'Error reading' dsn 'rc=' sy-subrc.
           endcase.
       endform.
*--------------------------------------------------------------------
   form dswrite
       using    dsn type c
                rec.

    statics: rctr type i.
      transfer rec to dsn.
       case sy-subrc.
       when 0.
           add 1 to rctr.
       when others.
           message e001(zk) with 'Error writing to' dsn 'rc=' sy-subrc.
           endcase.
       endform.
*--------------------------------------------------------------------
   form dsclose
       using dsn type c.
       close dataset dsn.
       if sy-subrc <> 0.
           message e001(zk) with 'Error closing' dsn 'rc=' sy-subrc.
           endif.
       endform.
  Text elements

I

001

Serv -> PC

I

002

PC -> Server

I

003

Ver fichero

R

 

Transfiere ficheros del servidor a local

S

EFN

Editor local

S

PFN

Nombre del fichero en PC

S

SFN

Fichero en el servidor

 

Contact Us | Polls | Add URL | Contribute | About | Privacy | Terms | Feedback | Help!

Message Board | Discussion Forum | BLOG | Consultants: Post your resume | Companies: Advertise on ERPGenie.COM | Post Job