<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Code for a report with email,download and FTP functionality in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-for-a-report-with-email-download-and-ftp-functionality/m-p/3529164#M849051</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hope the below code will resolve ur purpose.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;to download the report pass the internal table content to the below function module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;     FILENAME                        = L_FILE " File location&lt;/P&gt;&lt;P&gt;     FILETYPE                        = 'DAT'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FILELENGTH                      =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DATA_TAB                       = T_DOWNLOAD "Internal table &lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     FILE_WRITE_ERROR                = 1&lt;/P&gt;&lt;P&gt;     NO_BATCH                        = 2&lt;/P&gt;&lt;P&gt;     GUI_REFUSE_FILETRANSFER         = 3&lt;/P&gt;&lt;P&gt;     INVALID_TYPE                    = 4&lt;/P&gt;&lt;P&gt;     NO_AUTHORITY                    = 5&lt;/P&gt;&lt;P&gt;     UNKNOWN_ERROR                   = 6&lt;/P&gt;&lt;P&gt;     HEADER_NOT_ALLOWED              = 7&lt;/P&gt;&lt;P&gt;     SEPARATOR_NOT_ALLOWED           = 8&lt;/P&gt;&lt;P&gt;     FILESIZE_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;     HEADER_TOO_LONG                 = 10&lt;/P&gt;&lt;P&gt;     DP_ERROR_CREATE                 = 11&lt;/P&gt;&lt;P&gt;     DP_ERROR_SEND                   = 12&lt;/P&gt;&lt;P&gt;     DP_ERROR_WRITE                  = 13&lt;/P&gt;&lt;P&gt;     UNKNOWN_DP_ERROR                = 14&lt;/P&gt;&lt;P&gt;     ACCESS_DENIED                   = 15&lt;/P&gt;&lt;P&gt;     DP_OUT_OF_MEMORY                = 16&lt;/P&gt;&lt;P&gt;     DISK_FULL                       = 17&lt;/P&gt;&lt;P&gt;     DP_TIMEOUT                      = 18&lt;/P&gt;&lt;P&gt;     FILE_NOT_FOUND                  = 19&lt;/P&gt;&lt;P&gt;     DATAPROVIDER_EXCEPTION          = 20&lt;/P&gt;&lt;P&gt;     CONTROL_FLUSH_ERROR             = 21&lt;/P&gt;&lt;P&gt;     OTHERS                          = 22&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For Email option follow the below process.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: NUMBYTES TYPE TST01-DSIZE,&lt;/P&gt;&lt;P&gt;        PDFSPOOLID TYPE TSP01-RQIDENT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF PDFDATA OCCURS 0.&lt;/P&gt;&lt;P&gt;          INCLUDE STRUCTURE TLINE.&lt;/P&gt;&lt;P&gt;  DATA: END OF PDFDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: G1_LINES_TXT  TYPE I.&lt;/P&gt;&lt;P&gt;  DATA  : L_DOCUMENT_DATA    TYPE SODOCCHGI1,&lt;/P&gt;&lt;P&gt;          T_PACKING_LIST     TYPE STANDARD TABLE OF SOPCKLSTI1,&lt;/P&gt;&lt;P&gt;          W_OBJHEAD TYPE SOLI_TAB,&lt;/P&gt;&lt;P&gt;          T_OBJBIN TYPE STANDARD TABLE OF SOLISTI1,&lt;/P&gt;&lt;P&gt;          T_OBJTXT  TYPE STANDARD TABLE OF SOLISTI1,&lt;/P&gt;&lt;P&gt;          LW_PACKING_LIST    TYPE SOPCKLSTI1,&lt;/P&gt;&lt;P&gt;          L_LINES            TYPE I,&lt;/P&gt;&lt;P&gt;          W_RECEIVER        TYPE SOMLRECI1,&lt;/P&gt;&lt;P&gt;          T_RECEIVER         TYPE STANDARD TABLE OF SOMLRECI1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS  2 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: OBJHEAD LIKE SOLISTI1   OCCURS  1 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: OBJBIN  LIKE SOLISTI1   OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: OBJTXT  LIKE SOLISTI1   OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: RECLIST LIKE SOMLRECI1  OCCURS  5 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: DOC_CHNG LIKE SODOCCHGI1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: TAB_LINES LIKE SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT MAX( RQIDENT ) INTO G_SPOOL_NUM&lt;/P&gt;&lt;P&gt;                        FROM TSP01&lt;/P&gt;&lt;P&gt;                        WHERE RQCLIENT = SY-MANDT AND&lt;/P&gt;&lt;P&gt;                        RQOWNER = SY-UNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*....Convert Spool to PDF&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      SRC_SPOOLID              = G_SPOOL_NUM&lt;/P&gt;&lt;P&gt;      NO_DIALOG                = 'X'&lt;/P&gt;&lt;P&gt;      DST_DEVICE               = G_PDEST&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      PDF_BYTECOUNT            = NUMBYTES&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      PDF                      = PDFDATA&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      ERR_NO_ABAP_SPOOLJOB     = 1&lt;/P&gt;&lt;P&gt;      ERR_NO_SPOOLJOB          = 2&lt;/P&gt;&lt;P&gt;      ERR_NO_PERMISSION        = 3&lt;/P&gt;&lt;P&gt;      ERR_CONV_NOT_POSSIBLE    = 4&lt;/P&gt;&lt;P&gt;      ERR_BAD_DESTDEVICE       = 5&lt;/P&gt;&lt;P&gt;      USER_CANCELLED           = 6&lt;/P&gt;&lt;P&gt;      ERR_SPOOLERROR           = 7&lt;/P&gt;&lt;P&gt;      ERR_TEMSEERROR           = 8&lt;/P&gt;&lt;P&gt;      ERR_BTCJOB_OPEN_FAILED   = 9&lt;/P&gt;&lt;P&gt;      ERR_BTCJOB_SUBMIT_FAILED = 10&lt;/P&gt;&lt;P&gt;      ERR_BTCJOB_CLOSE_FAILED  = 11&lt;/P&gt;&lt;P&gt;      OTHERS                   = 12.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*...Convert 132 char to 255 char&lt;/P&gt;&lt;P&gt;  LOOP AT PDFDATA.&lt;/P&gt;&lt;P&gt;    TRANSLATE PDFDATA USING ' ~'.&lt;/P&gt;&lt;P&gt;    CONCATENATE GD_BUFFER PDFDATA INTO GD_BUFFER.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRANSLATE GD_BUFFER USING '~ '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    IT_MESS_ATT = GD_BUFFER.&lt;/P&gt;&lt;P&gt;    APPEND IT_MESS_ATT.&lt;/P&gt;&lt;P&gt;    SHIFT GD_BUFFER LEFT BY 255 PLACES.&lt;/P&gt;&lt;P&gt;    IF GD_BUFFER IS INITIAL.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Function module to send email.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        DOCUMENT_DATA              = DOC_CHNG&lt;/P&gt;&lt;P&gt;        PUT_IN_OUTBOX              = 'X'&lt;/P&gt;&lt;P&gt;        COMMIT_WORK                = 'X'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        PACKING_LIST               = OBJPACK&lt;/P&gt;&lt;P&gt;        OBJECT_HEADER              = OBJHEAD&lt;/P&gt;&lt;P&gt;        CONTENTS_BIN               = OBJBIN&lt;/P&gt;&lt;P&gt;        CONTENTS_TXT               = OBJTXT&lt;/P&gt;&lt;P&gt;        RECEIVERS                  = RECLIST&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        TOO_MANY_RECEIVERS         = 1&lt;/P&gt;&lt;P&gt;        DOCUMENT_NOT_SENT          = 2&lt;/P&gt;&lt;P&gt;        OPERATION_NO_AUTHORIZATION = 4&lt;/P&gt;&lt;P&gt;        OTHERS                     = 99.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if helpful.................&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 13 Mar 2008 06:33:45 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-03-13T06:33:45Z</dc:date>
    <item>
      <title>Code for a report with email,download and FTP functionality</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-for-a-report-with-email-download-and-ftp-functionality/m-p/3529161#M849048</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Can anyone send me the code for a sample report that has email,download and FTP functionality...Such that these  are with check boxs.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: murali ko on Mar 13, 2008 7:25 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Mar 2008 06:24:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-for-a-report-with-email-download-and-ftp-functionality/m-p/3529161#M849048</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-13T06:24:45Z</dc:date>
    </item>
    <item>
      <title>Re: Code for a report with email,download and FTP functionality</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-for-a-report-with-email-download-and-ftp-functionality/m-p/3529162#M849049</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt; To download data from SAP to excel, use&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; CALL FUNCTION 'SAP_CONVERT_TO_XLS_FORMAT'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      i_filename        = gf_file&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      i_tab_sap_data    = gt_output&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      conversion_failed = 1&lt;/P&gt;&lt;P&gt;      OTHERS            = 2.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;To send this excel as email attachment, use the below reference code.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Declaration&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA:    lwa_hd_change TYPE sood1,&lt;/P&gt;&lt;P&gt;           lt_objcont    TYPE STANDARD TABLE OF soli,&lt;/P&gt;&lt;P&gt;           lwa_objcont   TYPE soli,&lt;/P&gt;&lt;P&gt;           lt_receivers  TYPE STANDARD TABLE OF soos1,&lt;/P&gt;&lt;P&gt;           lwa_receivers TYPE soos1 ,&lt;/P&gt;&lt;P&gt;           lt_att_cont   TYPE STANDARD TABLE OF soli,&lt;/P&gt;&lt;P&gt;           lwa_att_cont  TYPE soli,&lt;/P&gt;&lt;P&gt;           lt_packing    TYPE STANDARD TABLE OF soxpl,&lt;/P&gt;&lt;P&gt;           lwa_packing   TYPE soxpl,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;           lf_sent       TYPE sonv-flag,&lt;/P&gt;&lt;P&gt;           lf_size       TYPE i.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONSTANTS: lc_obj(11)  TYPE c VALUE 'BOMSouthco',&lt;/P&gt;&lt;P&gt;             lc_desc(20) TYPE c VALUE 'BOM Download',&lt;/P&gt;&lt;P&gt;             lc_lang(1)  TYPE c VALUE 'E',&lt;/P&gt;&lt;P&gt;             lc_raw(3)   TYPE c VALUE 'RAW',&lt;/P&gt;&lt;P&gt;             lc_net(1)   TYPE c VALUE 'U',&lt;/P&gt;&lt;P&gt;             lc_mail(4)  TYPE c VALUE 'MAIL',&lt;/P&gt;&lt;P&gt;             lc_xls(3)   TYPE c VALUE 'XLS',&lt;/P&gt;&lt;P&gt;             lc_ext(3)   TYPE c VALUE 'EXT'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Passing values to the strutures used in SO_OBJECT_SEND function module&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  lwa_hd_change-objla      = lc_lang.&lt;/P&gt;&lt;P&gt;  lwa_hd_change-objnam     = lc_obj.&lt;/P&gt;&lt;P&gt;  lwa_hd_change-objdes     = lc_desc.&lt;/P&gt;&lt;P&gt;  lwa_hd_change-objlen     = 255.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lwa_objcont-line = text-t29.&lt;/P&gt;&lt;P&gt;  APPEND lwa_objcont TO lt_objcont.&lt;/P&gt;&lt;P&gt;  CLEAR lwa_objcont.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lwa_receivers-recextnam  = text-t31.&lt;/P&gt;&lt;P&gt;  lwa_receivers-recesc     = lc_net.&lt;/P&gt;&lt;P&gt;  lwa_receivers-sndart     = lc_mail.&lt;/P&gt;&lt;P&gt;  lwa_receivers-sndex      = 'X'.&lt;/P&gt;&lt;P&gt;  lwa_receivers-sndpri     = 1.&lt;/P&gt;&lt;P&gt;  lwa_receivers-mailstatus = 'E'.&lt;/P&gt;&lt;P&gt;  APPEND lwa_receivers TO lt_receivers.&lt;/P&gt;&lt;P&gt;  CLEAR lwa_receivers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  lwa_receivers-recextnam  = text-t30.&lt;/P&gt;&lt;P&gt;  lwa_receivers-recesc     = lc_net.&lt;/P&gt;&lt;P&gt;  lwa_receivers-sndart     = lc_mail.&lt;/P&gt;&lt;P&gt;  lwa_receivers-sndex      = 'X'.&lt;/P&gt;&lt;P&gt;  lwa_receivers-sndpri     = 1.&lt;/P&gt;&lt;P&gt;  lwa_receivers-mailstatus = 'E'.&lt;/P&gt;&lt;P&gt;  APPEND lwa_receivers TO lt_receivers.&lt;/P&gt;&lt;P&gt;  CLEAR lwa_receivers.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;Passing values for the attachment file&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  LOOP AT gt_output INTO gwa_output.&lt;/P&gt;&lt;P&gt;    CONCATENATE gf_lf  gwa_output-matnr  gf_etb  gwa_output-idnrk  gf_etb&lt;/P&gt;&lt;P&gt;                gwa_output-type   gf_etb  gwa_output-menge   gf_etb&lt;/P&gt;&lt;P&gt;                gwa_output-meins  gf_etb  gwa_output-comp    gf_etb&lt;/P&gt;&lt;P&gt;      INTO lwa_att_cont-line.&lt;/P&gt;&lt;P&gt;    APPEND lwa_att_cont TO lt_att_cont.&lt;/P&gt;&lt;P&gt;    CLEAR lwa_att_cont.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK lt_att_cont IS NOT INITIAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE lt_att_cont LINES lf_size.&lt;/P&gt;&lt;P&gt;  lwa_packing-transf_bin = ' '.&lt;/P&gt;&lt;P&gt;  lwa_packing-head_start = 1.&lt;/P&gt;&lt;P&gt;  lwa_packing-head_num   = 0.&lt;/P&gt;&lt;P&gt;  lwa_packing-body_start = 1.&lt;/P&gt;&lt;P&gt;  lwa_packing-body_num   = lf_size.&lt;/P&gt;&lt;P&gt;  lwa_packing-file_ext   = lc_xls.&lt;/P&gt;&lt;P&gt;  lwa_packing-objlen     = lf_size * 255.&lt;/P&gt;&lt;P&gt;  lwa_packing-objtp      = lc_ext.&lt;/P&gt;&lt;P&gt;  lwa_packing-objdes     = lc_desc.&lt;/P&gt;&lt;P&gt;  lwa_packing-objnam     = lc_obj.&lt;/P&gt;&lt;P&gt;  APPEND lwa_packing TO lt_packing.&lt;/P&gt;&lt;P&gt;  CLEAR lwa_packing.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CHECK gf_error IS NOT INITIAL. "Check if unix file is written&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;FM to send email to the intended recipients&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  CALL FUNCTION 'SO_OBJECT_SEND'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      object_hd_change           = lwa_hd_change&lt;/P&gt;&lt;P&gt;      object_type                = lc_raw&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      sent_to_all                = lf_sent&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      objcont                    = lt_objcont&lt;/P&gt;&lt;P&gt;      receivers                  = lt_receivers&lt;/P&gt;&lt;P&gt;      packing_list               = lt_packing&lt;/P&gt;&lt;P&gt;      att_cont                   = lt_att_cont&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      active_user_not_exist      = 1&lt;/P&gt;&lt;P&gt;      communication_failure      = 2&lt;/P&gt;&lt;P&gt;      component_not_available    = 3&lt;/P&gt;&lt;P&gt;      folder_not_exist           = 4&lt;/P&gt;&lt;P&gt;      folder_no_authorization    = 5&lt;/P&gt;&lt;P&gt;      forwarder_not_exist        = 6&lt;/P&gt;&lt;P&gt;      note_not_exist             = 7&lt;/P&gt;&lt;P&gt;      object_not_exist           = 8&lt;/P&gt;&lt;P&gt;      object_not_sent            = 9&lt;/P&gt;&lt;P&gt;      object_no_authorization    = 10&lt;/P&gt;&lt;P&gt;      object_type_not_exist      = 11&lt;/P&gt;&lt;P&gt;      operation_no_authorization = 12&lt;/P&gt;&lt;P&gt;      owner_not_exist            = 13&lt;/P&gt;&lt;P&gt;      parameter_error            = 14&lt;/P&gt;&lt;P&gt;      substitute_not_active      = 15&lt;/P&gt;&lt;P&gt;      substitute_not_defined     = 16&lt;/P&gt;&lt;P&gt;      system_failure             = 17&lt;/P&gt;&lt;P&gt;      too_much_receivers         = 18&lt;/P&gt;&lt;P&gt;      user_not_exist             = 19&lt;/P&gt;&lt;P&gt;      originator_not_exist       = 20&lt;/P&gt;&lt;P&gt;      x_error                    = 21&lt;/P&gt;&lt;P&gt;      OTHERS                     = 22.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF sy-subrc = 0.&lt;/P&gt;&lt;P&gt;    MESSAGE s004 WITH text-t34.  "Success message&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  COMMIT WORK.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward if helpful.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Ramya&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Mar 2008 06:29:58 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-for-a-report-with-email-download-and-ftp-functionality/m-p/3529162#M849049</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-13T06:29:58Z</dc:date>
    </item>
    <item>
      <title>Re: Code for a report with email,download and FTP functionality</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-for-a-report-with-email-download-and-ftp-functionality/m-p/3529163#M849050</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Please use the SDN for Technical help. If you start work , and in the middle you struck with some problem you come to SDN. but how you are asking the Program with all these options. I am sure you can do it. start work on that. If you have any issues then come back.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Mar 2008 06:30:13 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-for-a-report-with-email-download-and-ftp-functionality/m-p/3529163#M849050</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-13T06:30:13Z</dc:date>
    </item>
    <item>
      <title>Re: Code for a report with email,download and FTP functionality</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/code-for-a-report-with-email-download-and-ftp-functionality/m-p/3529164#M849051</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hope the below code will resolve ur purpose.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;to download the report pass the internal table content to the below function module.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'GUI_DOWNLOAD'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;     FILENAME                        = L_FILE " File location&lt;/P&gt;&lt;P&gt;     FILETYPE                        = 'DAT'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;   FILELENGTH                      =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      DATA_TAB                       = T_DOWNLOAD "Internal table &lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     FILE_WRITE_ERROR                = 1&lt;/P&gt;&lt;P&gt;     NO_BATCH                        = 2&lt;/P&gt;&lt;P&gt;     GUI_REFUSE_FILETRANSFER         = 3&lt;/P&gt;&lt;P&gt;     INVALID_TYPE                    = 4&lt;/P&gt;&lt;P&gt;     NO_AUTHORITY                    = 5&lt;/P&gt;&lt;P&gt;     UNKNOWN_ERROR                   = 6&lt;/P&gt;&lt;P&gt;     HEADER_NOT_ALLOWED              = 7&lt;/P&gt;&lt;P&gt;     SEPARATOR_NOT_ALLOWED           = 8&lt;/P&gt;&lt;P&gt;     FILESIZE_NOT_ALLOWED            = 9&lt;/P&gt;&lt;P&gt;     HEADER_TOO_LONG                 = 10&lt;/P&gt;&lt;P&gt;     DP_ERROR_CREATE                 = 11&lt;/P&gt;&lt;P&gt;     DP_ERROR_SEND                   = 12&lt;/P&gt;&lt;P&gt;     DP_ERROR_WRITE                  = 13&lt;/P&gt;&lt;P&gt;     UNKNOWN_DP_ERROR                = 14&lt;/P&gt;&lt;P&gt;     ACCESS_DENIED                   = 15&lt;/P&gt;&lt;P&gt;     DP_OUT_OF_MEMORY                = 16&lt;/P&gt;&lt;P&gt;     DISK_FULL                       = 17&lt;/P&gt;&lt;P&gt;     DP_TIMEOUT                      = 18&lt;/P&gt;&lt;P&gt;     FILE_NOT_FOUND                  = 19&lt;/P&gt;&lt;P&gt;     DATAPROVIDER_EXCEPTION          = 20&lt;/P&gt;&lt;P&gt;     CONTROL_FLUSH_ERROR             = 21&lt;/P&gt;&lt;P&gt;     OTHERS                          = 22&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;For Email option follow the below process.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: NUMBYTES TYPE TST01-DSIZE,&lt;/P&gt;&lt;P&gt;        PDFSPOOLID TYPE TSP01-RQIDENT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: BEGIN OF PDFDATA OCCURS 0.&lt;/P&gt;&lt;P&gt;          INCLUDE STRUCTURE TLINE.&lt;/P&gt;&lt;P&gt;  DATA: END OF PDFDATA.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: G1_LINES_TXT  TYPE I.&lt;/P&gt;&lt;P&gt;  DATA  : L_DOCUMENT_DATA    TYPE SODOCCHGI1,&lt;/P&gt;&lt;P&gt;          T_PACKING_LIST     TYPE STANDARD TABLE OF SOPCKLSTI1,&lt;/P&gt;&lt;P&gt;          W_OBJHEAD TYPE SOLI_TAB,&lt;/P&gt;&lt;P&gt;          T_OBJBIN TYPE STANDARD TABLE OF SOLISTI1,&lt;/P&gt;&lt;P&gt;          T_OBJTXT  TYPE STANDARD TABLE OF SOLISTI1,&lt;/P&gt;&lt;P&gt;          LW_PACKING_LIST    TYPE SOPCKLSTI1,&lt;/P&gt;&lt;P&gt;          L_LINES            TYPE I,&lt;/P&gt;&lt;P&gt;          W_RECEIVER        TYPE SOMLRECI1,&lt;/P&gt;&lt;P&gt;          T_RECEIVER         TYPE STANDARD TABLE OF SOMLRECI1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS  2 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: OBJHEAD LIKE SOLISTI1   OCCURS  1 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: OBJBIN  LIKE SOLISTI1   OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: OBJTXT  LIKE SOLISTI1   OCCURS 10 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: RECLIST LIKE SOMLRECI1  OCCURS  5 WITH HEADER LINE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: DOC_CHNG LIKE SODOCCHGI1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: TAB_LINES LIKE SY-TABIX.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  SELECT MAX( RQIDENT ) INTO G_SPOOL_NUM&lt;/P&gt;&lt;P&gt;                        FROM TSP01&lt;/P&gt;&lt;P&gt;                        WHERE RQCLIENT = SY-MANDT AND&lt;/P&gt;&lt;P&gt;                        RQOWNER = SY-UNAME.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*....Convert Spool to PDF&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      SRC_SPOOLID              = G_SPOOL_NUM&lt;/P&gt;&lt;P&gt;      NO_DIALOG                = 'X'&lt;/P&gt;&lt;P&gt;      DST_DEVICE               = G_PDEST&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      PDF_BYTECOUNT            = NUMBYTES&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      PDF                      = PDFDATA&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      ERR_NO_ABAP_SPOOLJOB     = 1&lt;/P&gt;&lt;P&gt;      ERR_NO_SPOOLJOB          = 2&lt;/P&gt;&lt;P&gt;      ERR_NO_PERMISSION        = 3&lt;/P&gt;&lt;P&gt;      ERR_CONV_NOT_POSSIBLE    = 4&lt;/P&gt;&lt;P&gt;      ERR_BAD_DESTDEVICE       = 5&lt;/P&gt;&lt;P&gt;      USER_CANCELLED           = 6&lt;/P&gt;&lt;P&gt;      ERR_SPOOLERROR           = 7&lt;/P&gt;&lt;P&gt;      ERR_TEMSEERROR           = 8&lt;/P&gt;&lt;P&gt;      ERR_BTCJOB_OPEN_FAILED   = 9&lt;/P&gt;&lt;P&gt;      ERR_BTCJOB_SUBMIT_FAILED = 10&lt;/P&gt;&lt;P&gt;      ERR_BTCJOB_CLOSE_FAILED  = 11&lt;/P&gt;&lt;P&gt;      OTHERS                   = 12.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*...Convert 132 char to 255 char&lt;/P&gt;&lt;P&gt;  LOOP AT PDFDATA.&lt;/P&gt;&lt;P&gt;    TRANSLATE PDFDATA USING ' ~'.&lt;/P&gt;&lt;P&gt;    CONCATENATE GD_BUFFER PDFDATA INTO GD_BUFFER.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  TRANSLATE GD_BUFFER USING '~ '.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DO.&lt;/P&gt;&lt;P&gt;    IT_MESS_ATT = GD_BUFFER.&lt;/P&gt;&lt;P&gt;    APPEND IT_MESS_ATT.&lt;/P&gt;&lt;P&gt;    SHIFT GD_BUFFER LEFT BY 255 PLACES.&lt;/P&gt;&lt;P&gt;    IF GD_BUFFER IS INITIAL.&lt;/P&gt;&lt;P&gt;      EXIT.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;  ENDDO.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Function module to send email.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'&lt;/P&gt;&lt;P&gt;      EXPORTING&lt;/P&gt;&lt;P&gt;        DOCUMENT_DATA              = DOC_CHNG&lt;/P&gt;&lt;P&gt;        PUT_IN_OUTBOX              = 'X'&lt;/P&gt;&lt;P&gt;        COMMIT_WORK                = 'X'&lt;/P&gt;&lt;P&gt;      TABLES&lt;/P&gt;&lt;P&gt;        PACKING_LIST               = OBJPACK&lt;/P&gt;&lt;P&gt;        OBJECT_HEADER              = OBJHEAD&lt;/P&gt;&lt;P&gt;        CONTENTS_BIN               = OBJBIN&lt;/P&gt;&lt;P&gt;        CONTENTS_TXT               = OBJTXT&lt;/P&gt;&lt;P&gt;        RECEIVERS                  = RECLIST&lt;/P&gt;&lt;P&gt;      EXCEPTIONS&lt;/P&gt;&lt;P&gt;        TOO_MANY_RECEIVERS         = 1&lt;/P&gt;&lt;P&gt;        DOCUMENT_NOT_SENT          = 2&lt;/P&gt;&lt;P&gt;        OPERATION_NO_AUTHORIZATION = 4&lt;/P&gt;&lt;P&gt;        OTHERS                     = 99.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reward points if helpful.................&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 13 Mar 2008 06:33:45 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/code-for-a-report-with-email-download-and-ftp-functionality/m-p/3529164#M849051</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-03-13T06:33:45Z</dc:date>
    </item>
  </channel>
</rss>

