Converting OTF to EXCEL  or PDF to ECXEL  and sending Excel through mail

Hi ,
I need a solution for Converting OTF into EXCEL  or PDF into ECXEL  and sending Excel as a attachment to the mail.
In my current Program I am getting OTF data from script and converting into PDF using Function module ' CONVERT_OTF'
And sending PDF as a mail attachment using Function module 'SO_NEW_DOCUMENT_SEND_API1' it is working fine but
My current requirement is I need to send Excel as a mail attachment instead of PDF.
Hope it is clear for you, please give me solutions with sample code..

Hi!
Because OTF is not a grid, like Excel, and PDF can also contain anything, I think it is not possible to convert an OTF, or PDF into an excel spreadsheet.
You can convert an ALV into excel and send it via email.
Regards
Tamá

Similar Messages

  • Convert ALV or layout in HTML or xls and send attachment through mail

    Dear Expert,
    Actually i have a ALV program and layout.
    Now i want to open these program in HTML and XLS both the option, according to Radio Button selection for Html or XLS.
    Then send  this output to concern person via email as an attachment.
    Plz. Help me as soon as posible
    Bye

    Hi Shalini,
    based on your radio button call fm:
    call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
          exporting
            document_data              = lv_document_data
            put_in_outbox              = space
            commit_work                = 'X'
          tables
            packing_list               = i_objpack
            object_header              = i_objhead
            contents_bin               = i_audit_output
            contents_txt               = i_objtxt
            receivers                  = i_reclist
          exceptions
            too_many_receivers         = 1
            document_not_sent          = 2
            document_type_not_exist    = 3
            operation_no_authorization = 4
            parameter_error            = 5
            x_error                    = 6
            enqueue_error              = 7
            others                     = 8.
        if sy-subrc  0.
          message id sy-msgid type sy-msgty number sy-msgno
                  with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      Display message saying email was sent successfully.
        else.
          write: /1 text-t23.
        endif.

  • I recently signed up for a one month trial of adobe pro.  I logged in.  I cannot convert a single page of PDF file to word or Excel with this trial.  I just get the request to sign up for a year.  What good is the trial if I can't try it?

    I recently signed up for a one month trial of adobe pro.  I logged in.  I cannot convert a single page of PDF file to word or Excel with this trial.  I just get the request to sign up for a year.  What good is the trial if I can't try it?

    Hey vcomfort6,
    Please ensure that you are using Adobe Acrobat and not Reader to convert PDF file to word or excel.
    Could you tell me whether it is a scanned document? Does this happen with all PDFs or any specific one?
    Do you get any error message? What exactly happens when you try doing the same?
    Hope to hear from you.
    Regards,
    Anubha

  • Invoice to convert  in PDF and send by E-Mail

    I would like to Convert the OutPut of Invoice to PDF format and send it through E-Mail.
    Is there any SAP standard programme available to this or what is the process?

    This is OK, but kindly let me know the what paramter I have to enter, I entered some parameter and some parameter I cant understand, marked as '?'.
    Import parameters               Value
    FORMAT_SRC                      OTF    
    FORMAT_DST                      PDF    
    ADDR_TYPE                       5      
    DEVTYPE                              ?  
    FUNCPARA                            ? 
    Changing parameters             Value       
    TRANSFER_BIN                          ?      
    CONTENT_TXT                        0 Entries
    CONTENT_BIN                        0 Entries
    OBJHEAD                            0 Entries
    LEN                                          ?
    Thanks
    Awadhesh

  • Generating a PDF from a OTF (imported from CLOSE_FORM) and send it by mail.

    Hello!
    I have a problem.
    I'll try to explain it toy you.
    I have a SapScript that the user has the option to send it to the printer or have a Print Preview. I need to send it by mail in PDF format.
    If the user select PRINT, a spool id is created, I can get the OTF, generate the PDF and send it by mail. Everything OK with that.
    The problem is if the user select PRINT PREVIEW I don't get a spool id. So, what I did is to get the OTF from the CLOSE_FORM MF and generate de PDF from there. I tried several FM to generate the PDF but for sure I'm doing something wrong, because or the PDF is corrupted or I have a problem with the parameters in the SO_NEW_DOCUMENT_ATT_SEND_API1 FM.
    So, what I need it: Generate a PDF from a OTF imported from CLOSE_FORM FM and send it by mail.
    Examples or the FM I can use are welcome.
    I tried to do search here, but I couldn't find anything that may help me..
    So, please... Show me the light!!!
    Thanks!!!
    Bettina

    Part 3
    * Send Report
      clear:    maildata, mailtxt, mailbin, mailpack, mailhead, mailrec.
      refresh:  mailtxt, mailbin, mailpack, mailhead, mailrec.
    * Creation of the document to be sent File Name
      maildata-obj_name = 'REPORT'.
    * Mail Subject
      maildata-obj_descr = 'Your Report'.
      describe table mailtxt lines tab_lines.
      read table mailtxt index tab_lines.
      maildata-doc_size = ( tab_lines - 1 ) * 255 + strlen( mailtxt ).
    * Creation of the entry for the compressed document
      clear mailpack-transf_bin.
      mailpack-head_start = 1.
      mailpack-head_num = 0.
      mailpack-body_start = 1.
      mailpack-body_num = tab_lines.
      mailpack-doc_type = 'RAW'.
      append mailpack.
    * Creation of the document attachment
      loop at solisti1.
        move-corresponding solisti1 to mailbin.
        append mailbin.
      endloop.
      describe table mailbin lines tab_lines.
      mailhead = 'REPORT.OTF'.
      append mailhead.
    ** Creation of the entry for the compressed attachment
      mailpack-transf_bin = 'X'.
      mailpack-head_start = 1.
      mailpack-head_num = 1.
      mailpack-body_start = 1.
      mailpack-body_num = tab_lines.
      mailpack-doc_type = 'OTF'.
      mailpack-obj_name = 'ATTACHMENT'.
      mailpack-obj_descr = 'Some Report'.
      mailpack-doc_size = tab_lines * 255.
      append mailpack.
      mailrec-receiver = lv_email_address.  "<-- a valid email address
      mailrec-rec_type  = 'U'.
      append mailrec.
    * Sending the document
      call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           exporting
                document_data              = maildata
                put_in_outbox              = 'X'
           tables
                packing_list               = mailpack
                object_header              = mailhead
                contents_bin               = mailbin
                contents_txt               = mailtxt
                receivers                  = mailrec
           exceptions
                too_many_receivers         = 1
                document_not_sent          = 2
                operation_no_authorization = 4
                others                     = 99.
    Regards,
    Rich Heilman

  • Have an Adobe PRO 11 user converting a word Document to PDF using PDFMAKER and all of the numbering is disappearing from left column,.  Has anyone had this happen and if so what is the fix?

    have an Adobe PRO 11 user converting a word Document to PDF using PDFMAKER and all of the numbering is disappearing from left column,.  Has anyone had this happen and if so what is the fix?

    Is it possible to post a sample page some place for us to try out (dropbox or acrobat.com)? Is your Acrobat updated? What version of WORD are you using?

  • When I try and send an e-mail via the PDF in print it gives a warning

    When I try and send an e-mail via the PDF in print it gives a warning saying :
    “” does not appear to be a valid e-mail address. Verify the address and try again.
    For whatever reason it is putting a "" in front of the address that I get from the address book.
    There is nothing in my previous recipients and if I copy and paste the info from the e-mail to another e-mail from mail directly the address is fine and it sends without and problems.
    Any ideas or web site I can visit to remove this ?
    Greg

    Quote :  So you start typing in the recipients name and it puts the name in quotes?
    Yes.
    As is normal, I type in a few letters and the auto fills in the name and the name is highlighted in blue as always.
    It does not happen if I send it from the SHARE dropdown.
    However in the SHARE I have to send all the pages.
    I have to use the FILE dropdown and then the PRINT, pick the first page (single) and then go to the MAIL PDF.
    That is the one I am having the issue with.
    Thanks for taking the time to help.
    Greg

  • Convert smartform spool to 2 pdf and send it by mail

    Hi! Can someone show me some code how to call the smartform and use the spool to convert to pdf and then send it by mail?
    Thanks in advance,
    Regards

    hai
    its very useful for u
    Object ID          :  PTP_TS_FRM_202                                 *
    Description        :  Print Program For PO Goods Receipt Document    *
    Developer          :  Ganesh Shanker Vidyarthi                       *
    Date               :  11/06/2006                                     *
    Genentech Contact  :                                                 *
    Functional Contact :                                                 *
    Purpose            :  This program is driver program of Goods Receipt*
                          Printing.                                      *
    Program Logic      : The Goods Receipt form (Raw material worksheet) *
                         would be created once we entered the values of
                         MBLNR MJAHR ZEILE fields on the selection screen.
                       Modification Log                                  *
    Changed On    Developer         Transport No.    Description         *
    11/06/2006    G.S.Vidyarthi                      Creation            *
    REPORT  zptpfrm202p_pogr_pr_instr MESSAGE-ID zmm.
              TABLES                                                     *
    Database table made for getting information about PRINTPREVIEW and
    PRINT command more than one times
    TABLES:    zgr_table.
    TYPE-POOLS:syscr.
              GLOBAL TYPE DECLARATION                                    *
    DATA:  zdoc_output_info     TYPE     ssfcrespd,  "SF:Return Document Inf.
         zjob_output_info     TYPE     ssfcrescl,  "SF:Return value at end of
                                                    form printing
           i_control TYPE ssfctrlop ,
           i_output_options TYPE ssfcompop,
           zjob_output_opts     TYPE     ssfcresop.  "SF:Return value at start
                                                    of form printing
    *This internal table is used for storing Document Segment: Material
    DATA: BEGIN OF i_mseg.
            INCLUDE STRUCTURE mseg.
    DATA: END OF i_mseg.
    This internal table is used for storing  Header: Material Document
    DATA: BEGIN OF i_mkpf.
            INCLUDE STRUCTURE mkpf.
    DATA: END OF i_mkpf.
    *Variables
    DATA flag(1) TYPE c.
    DATA: vfile TYPE string.
                    SELECTION-SCREEN                                     *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-000.
    PARAMETERS:p_mblnr TYPE mkpf-mblnr OBLIGATORY MATCHCODE OBJECT zganesh,
               p_mjahr TYPE mkpf-mjahr OBLIGATORY MATCHCODE OBJECT zganesh1,
               p_zeile TYPE mseg-zeile OBLIGATORY MATCHCODE OBJECT zganesh2.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-001.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 10.
    PARAMETER:r_disp RADIOBUTTON GROUP g1 USER-COMMAND u1 DEFAULT 'X'.
    SELECTION-SCREEN:COMMENT 15(10) text-002 .
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 10.
    PARAMETERS: r_down RADIOBUTTON GROUP g1.
    SELECTION-SCREEN:COMMENT 15(10) text-003.
    *PARAMETERS: v_file LIKE rlgrap-filename .
    *SELECTION-SCREEN:COMMENT 70(50) text-005.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN POSITION 10.
    PARAMETERS: r_print RADIOBUTTON GROUP g1 .
    SELECTION-SCREEN:COMMENT 15(10) text-004.
    SELECTION-SCREEN END OF LINE.
    PARAMETERS: v_file LIKE rlgrap-filename MODIF ID g12.
    SELECTION-SCREEN END OF BLOCK b2.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR v_file.
      DATA : wlv_field_name LIKE dynpread-fieldname,
              wlv_file_name  LIKE ibipparms-path.
      wlv_field_name = v_file.
      CALL FUNCTION 'F4_FILENAME'
        EXPORTING
          field_name = wlv_field_name
        IMPORTING
          file_name  = wlv_file_name.
      IF sy-subrc EQ 0.
        vfile = wlv_file_name.
        v_file = wlv_file_name.
      ENDIF.
    AT SELECTION-SCREEN OUTPUT.
      LOOP AT SCREEN.
        IF screen-name = 'V_FILE'.
          IF r_disp EQ 'X' OR r_print EQ 'X'.
            screen-input = 0.
          ELSE.
            screen-input = '1'.
          ENDIF.
          MODIFY SCREEN.
        ENDIF.
      ENDLOOP.
                        START-OF-SELECTION EVENT                         *
    START-OF-SELECTION.
      CALLING CONVERSION FUNCTION MODULE 'CONVERSION_EXIT_ALPHA_INPUT'   *
    *Conversion function module for appending 00 befor MBLNR FIELD
      CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
        EXPORTING
          input  = p_mblnr
        IMPORTING
          output = p_mblnr.
    Call subroutine for fetching data from database
      PERFORM get_data.
                        END-OF-SELECTION  EVENT                          *
    END-OF-SELECTION.
    Call subroutine for calling  and processing smartform
      PERFORM call_smartform.
    *&      Form  get_data
          Subroutine for fetching data from database
    FORM get_data .
    Fetching data from MKPF table with using parameters MBLNR and MJAHR
      SELECT SINGLE * FROM mkpf
                      INTO i_mkpf
                      WHERE mblnr = p_mblnr
                        AND mjahr = p_mjahr.
      IF sy-subrc EQ 0.
    Fetching data from MSEG with using parameters MBLNR,ZEILE and MJAHR
        SELECT SINGLE * FROM mseg
                        INTO i_mseg
                        WHERE mblnr = i_mkpf-mblnr
                          AND mjahr = i_mkpf-mjahr
                          AND zeile = p_zeile.
        IF sy-subrc NE 0.
          CLEAR i_mseg.
        ENDIF.
      ELSE.
        MESSAGE i000.
        EXIT.
      ENDIF.
    ENDFORM.                    " get_data
    *&      Form  call_smartform
         Subroutine for calling smartform
    FORM call_smartform .
    Local template used in the processing output of smartform
      TYPES: BEGIN OF lt_ztable,
              mandt TYPE sy-mandt,
              mblnr TYPE mseg-mblnr,
              flag(1) TYPE c,
              END OF lt_ztable.
      CONSTANTS: c_x(1) TYPE c VALUE 'X'.
    Workarea
      DATA: lw_ztable TYPE lt_ztable.
    *Variable used in the smartform
      DATA: lv_form(30)    TYPE c,
            lv_fm_name(30) TYPE c.
      lv_form = 'ZPTPFRM202L_POGR'.
    *Calling function module SSF_FUNCTION_MODULE_NAME which gives  new name
    *to the function module that will generated by smartform.
      CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
        EXPORTING
          formname           = lv_form
        IMPORTING
          fm_name            = lv_fm_name
        EXCEPTIONS
          no_form            = 1
          no_function_module = 2
          OTHERS             = 3.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    *Calling function module that will be generated by smartform
      IF r_disp = c_x.
        i_output_options-tdimmed       = space.
        i_output_options-tdnewid       = c_x.
        i_output_options-tddest        = 'LOCL'.
        i_control-no_dialog = 'X'.
        i_control-preview = 'X'.
      ELSEIF r_print = c_x.
        i_output_options-tdimmed       = c_x.
        i_output_options-tddest        = 'LOCL'.
        i_control-no_dialog = c_x.
      ELSE.
        i_output_options-tdimmed       = space.
        i_output_options-tdnewid       = c_x.
        i_output_options-tddest        = 'LOCL'.
        i_control-getotf    = 'X'.
        i_control-preview   = space.
        i_control-no_dialog = c_x.
        flag = c_x.
      ENDIF.
      CALL FUNCTION lv_fm_name
        EXPORTING
          control_parameters   = i_control
          output_options       = i_output_options
          user_settings        = space
          zmkpf                = i_mkpf
          zmseg                = i_mseg
        IMPORTING
          document_output_info = zdoc_output_info
          job_output_info      = zjob_output_info
          job_output_options   = zjob_output_opts
        EXCEPTIONS
          formatting_error     = 1
          internal_error       = 2
          send_error           = 3
          user_canceled        = 4
          OTHERS               = 5.
      IF sy-subrc <> 0.
        MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ENDIF.
    Modify the database table if it found the print command
      IF  zjob_output_opts-tdpreview NE c_x.
        lw_ztable-mandt = sy-mandt.
        lw_ztable-mblnr = p_mblnr.
        lw_ztable-flag = c_x.
        MODIFY zgr_table FROM lw_ztable.
        CLEAR lw_ztable.
      ENDIF.
      IF flag EQ c_x.
        DATA:   li_lines LIKE tline OCCURS 100 WITH HEADER LINE.
        DATA:   lv_file   TYPE string,
                lbin_fsiz TYPE i.
        lv_file = v_file.
        CALL FUNCTION 'CONVERT_OTF'
          EXPORTING
            format                = 'PDF'
          IMPORTING
            bin_filesize          = lbin_fsiz
          TABLES
            otf                   = zjob_output_info-otfdata
            lines                 = li_lines
          EXCEPTIONS
            err_max_linewidth     = 1
            err_format            = 2
            err_conv_not_possible = 3
            err_bad_otf           = 4
            OTHERS                = 5.
        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 'GUI_DOWNLOAD'
          EXPORTING
            bin_filesize            = lbin_fsiz
            filename                = lv_file
            filetype                = 'BIN'
          TABLES
            data_tab                = li_lines
          EXCEPTIONS
            file_write_error        = 1
            no_batch                = 2
            gui_refuse_filetransfer = 3
            invalid_type            = 4
            no_authority            = 5
            unknown_error           = 6
            header_not_allowed      = 7
            separator_not_allowed   = 8
            filesize_not_allowed    = 9
            header_too_long         = 10
            dp_error_create         = 11
            dp_error_send           = 12
            dp_error_write          = 13
            unknown_dp_error        = 14
            access_denied           = 15
            dp_out_of_memory        = 16
            disk_full               = 17
            dp_timeout              = 18
            file_not_found          = 19
            dataprovider_exception  = 20
            control_flush_error     = 21
            OTHERS                  = 22.
        IF sy-subrc <> 0.
          MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
                  WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
        ENDIF.
      ENDIF.
    ENDFORM.                    " call_smartform
    **Please reward suitable points***
    With Regards
    Navin Khedikar

  • Smart form to PDF and send it by mail

    Hi ,
    I have smartform whihc i have to conver into pdf and send by mail. nay inputs is higghly appreciated

    Hi,
    You call the smartform-function module from within your printprogram.
    That smartform-function module has some standard import en export
    parameters(tables).
    One of the parameters (OTF) you have to mark (X).
    Than after the processing of the smartform(-function module) you get your
    otf back in an internal table.
    You have to convert this table to pdf with FM convert_to_pdf (or something
    like that).
    The output of this FM can be downloaded to the presentation server (pc) (FM
    gui_download) or written to the application server (SAP server) (transfer
    statement).
    Then use this link to send mail
    http://www.sap-img.com/abap/sending-email-with-attachment.htm
    Reward if useful!

  • Generate and send Excel format file by mail in bakground.

    Hi fellows, i have a requirement, which is to generate an excel file in background and send it attached by e-mail. This file have many characteristics like Freeze pane, Auto filters, and some other format characteristics, One of the ways for achieving this kind of characteristics is using OLE or Desktop Office Integration, but both run in foreground. Other way i found is formatting the excel using XML and then at the moment of sending it by mail, changing extension for xls, but the problem is that it occupies too much space, i imagine cause it is raw xml, for example for a file for 1,000 records and 14 columns generates a file of 1.6Mb which is not like generating the same file using OLE or DOI (24Kb).
    I would like to know if there is a way to use an excel component or another way that takes less space for generating the file with format and also send it by e-mail in background??
    Thanks.
    Noe.

    is 1.6 MB the smallest size you can generate, did you remove every optional tag?
    XLSX format is a compressed XML format valid since office 2007. Maybe you can try to generate it? (I don't exactly know which ZIP algorithm it requires, SAP can compress using the ZLIB Compression Library)
    You may also attach a Windows server to SAP via RFC. You should create an RFC server. You may have a look at this [sdn article - Communication to Presentation Server in Background Mode|http://www.sdn.sap.com/irj/scn/index?rid=/library/uuid/9831750a-0801-0010-1d9e-f8c64efb2bd2] for some clues about running an RFC server. I guess you could use a VB script on the server.
    For sending emails, this is a separate question, you may have a look at wiki: sending mails - home page.

  • Convert Spool request to PDF and send as e-mail

    Hi all,
    Can any one please provide me a  sample code for converting spool request to pdf?
    Thanks in advance,
    Suneela.

    HI,
    Try this
    Hi all,
    Can any one please provide me a  sample code for converting spool request to pdf?
    *& Report  ZSPOOLTOPDF                                                 *
    *& Converts spool request into PDF document and emails it to           *
    *& recipicant.                                                         *
    *& Execution                                                           *
    *& This program must be run as a background job in-order for the write *
    *& commands to create a Spool request rather than be displayed on      *
    *& screen                                                              *
    REPORT  zspooltopdf.
    PARAMETER: p_email1 LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               p_sender LIKE somlreci1-receiver
                                        DEFAULT '[email protected]',
               p_delspl  AS CHECKBOX.
    *DATA DECLARATION
    DATA: gd_recsize TYPE i.
    Spool IDs
    TYPES: BEGIN OF t_tbtcp.
            INCLUDE STRUCTURE tbtcp.
    TYPES: END OF t_tbtcp.
    DATA: it_tbtcp TYPE STANDARD TABLE OF t_tbtcp INITIAL SIZE 0,
          wa_tbtcp TYPE t_tbtcp.
    Job Runtime Parameters
    DATA: gd_eventid LIKE tbtcm-eventid,
          gd_eventparm LIKE tbtcm-eventparm,
          gd_external_program_active LIKE tbtcm-xpgactive,
          gd_jobcount LIKE tbtcm-jobcount,
          gd_jobname LIKE tbtcm-jobname,
          gd_stepcount LIKE tbtcm-stepcount,
          gd_error    TYPE sy-subrc,
          gd_reciever TYPE sy-subrc.
    DATA:  w_recsize TYPE i.
    DATA: gd_subject   LIKE sodocchgi1-obj_descr,
          it_mess_bod LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          it_mess_att LIKE solisti1 OCCURS 0 WITH HEADER LINE,
          gd_sender_type     LIKE soextreci1-adr_typ,
          gd_attachment_desc TYPE so_obj_nam,
          gd_attachment_name TYPE so_obj_des.
    Spool to PDF conversions
    DATA: gd_spool_nr LIKE tsp01-rqident,
          gd_destination LIKE rlgrap-filename,
          gd_bytecount LIKE tst01-dsize,
          gd_buffer TYPE string.
    Binary store for PDF
    DATA: BEGIN OF it_pdf_output OCCURS 0.
            INCLUDE STRUCTURE tline.
    DATA: END OF it_pdf_output.
    CONSTANTS: c_dev LIKE  sy-sysid VALUE 'DEV',
               c_no(1)     TYPE c   VALUE ' ',
               c_device(4) TYPE c   VALUE 'LOCL'.
    *START-OF-SELECTION.
    START-OF-SELECTION.
    Write statement to represent report output. Spool request is created
    if write statement is executed in background. This could also be an
    ALV grid which would be converted to PDF without any extra effort
      WRITE 'Hello World'.
      new-page.
      commit work.
      new-page print off.
      IF sy-batch EQ 'X'.
        PERFORM get_job_details.
        PERFORM obtain_spool_id.
    Alternative way could be to submit another program and store spool
    id into memory, will be stored in sy-spono.
    *submit ZSPOOLTOPDF2
           to sap-spool
           spool parameters   %_print
           archive parameters %_print
           without spool dynpro
           and return.
    Get spool id from program called above
    IMPORT w_spool_nr FROM MEMORY ID 'SPOOLTOPDF'.
        PERFORM convert_spool_to_pdf.
        PERFORM process_email.
        if p_delspl EQ 'X'.
          PERFORM delete_spool.
        endif.
        IF sy-sysid = c_dev.
          wait up to 5 seconds.
          SUBMIT rsconn01 WITH mode   = 'INT'
                          WITH output = 'X'
                          AND RETURN.
        ENDIF.
      ELSE.
        SKIP.
        WRITE:/ 'Program must be executed in background in-order for spool',
                'request to be created.'.
      ENDIF.
          FORM obtain_spool_id                                          *
    FORM obtain_spool_id.
      CHECK NOT ( gd_jobname IS INITIAL ).
      CHECK NOT ( gd_jobcount IS INITIAL ).
      SELECT * FROM  tbtcp
                     INTO TABLE it_tbtcp
                     WHERE      jobname     = gd_jobname
                     AND        jobcount    = gd_jobcount
                     AND        stepcount   = gd_stepcount
                     AND        listident   <> '0000000000'
                     ORDER BY   jobname
                                jobcount
                                stepcount.
      READ TABLE it_tbtcp INTO wa_tbtcp INDEX 1.
      IF sy-subrc = 0.
        message s004(zdd) with gd_spool_nr.
        gd_spool_nr = wa_tbtcp-listident.
        MESSAGE s004(zdd) WITH gd_spool_nr.
      ELSE.
        MESSAGE s005(zdd).
      ENDIF.
    ENDFORM.
          FORM get_job_details                                          *
    FORM get_job_details.
    Get current job details
      CALL FUNCTION 'GET_JOB_RUNTIME_INFO'
           IMPORTING
                eventid                 = gd_eventid
                eventparm               = gd_eventparm
                external_program_active = gd_external_program_active
                jobcount                = gd_jobcount
                jobname                 = gd_jobname
                stepcount               = gd_stepcount
           EXCEPTIONS
                no_runtime_info         = 1
                OTHERS                  = 2.
    ENDFORM.
          FORM convert_spool_to_pdf                                     *
    FORM convert_spool_to_pdf.
      CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
           EXPORTING
                src_spoolid              = gd_spool_nr
                no_dialog                = c_no
                dst_device               = c_device
           IMPORTING
                pdf_bytecount            = gd_bytecount
           TABLES
                pdf                      = it_pdf_output
           EXCEPTIONS
                err_no_abap_spooljob     = 1
                err_no_spooljob          = 2
                err_no_permission        = 3
                err_conv_not_possible    = 4
                err_bad_destdevice       = 5
                user_cancelled           = 6
                err_spoolerror           = 7
                err_temseerror           = 8
                err_btcjob_open_failed   = 9
                err_btcjob_submit_failed = 10
                err_btcjob_close_failed  = 11
                OTHERS                   = 12.
      CHECK sy-subrc = 0.
    Transfer the 132-long strings to 255-long strings
      LOOP AT it_pdf_output.
        TRANSLATE it_pdf_output USING ' ~'.
        CONCATENATE gd_buffer it_pdf_output INTO gd_buffer.
      ENDLOOP.
      TRANSLATE gd_buffer USING '~ '.
      DO.
        it_mess_att = gd_buffer.
        APPEND it_mess_att.
        SHIFT gd_buffer LEFT BY 255 PLACES.
        IF gd_buffer IS INITIAL.
          EXIT.
        ENDIF.
      ENDDO.
    ENDFORM.
          FORM process_email                                            *
    FORM process_email.
      DESCRIBE TABLE it_mess_att LINES gd_recsize.
      CHECK gd_recsize > 0.
      PERFORM send_email USING p_email1.
    perform send_email using p_email2.
    ENDFORM.
          FORM send_email                                               *
    -->  p_email                                                       *
    FORM send_email USING p_email.
      CHECK NOT ( p_email IS INITIAL ).
      REFRESH it_mess_bod.
    Default subject matter
      gd_subject         = 'Subject'.
      gd_attachment_desc = 'Attachname'.
    CONCATENATE 'attach_name' ' ' INTO gd_attachment_name.
      it_mess_bod        = 'Message Body text, line 1'.
      APPEND it_mess_bod.
      it_mess_bod        = 'Message Body text, line 2...'.
      APPEND it_mess_bod.
    If no sender specified - default blank
      IF p_sender EQ space.
        gd_sender_type  = space.
      ELSE.
        gd_sender_type  = 'INT'.
      ENDIF.
    Send file by email as .xls speadsheet
      PERFORM send_file_as_email_attachment
                                   tables it_mess_bod
                                          it_mess_att
                                    using p_email
                                          'Example .xls documnet attachment'
                                          'PDF'
                                          gd_attachment_name
                                          gd_attachment_desc
                                          p_sender
                                          gd_sender_type
                                 changing gd_error
                                          gd_reciever.
    ENDFORM.
          FORM delete_spool                                             *
    FORM delete_spool.
      DATA: ld_spool_nr TYPE tsp01_sp0r-rqid_char.
      ld_spool_nr = gd_spool_nr.
      CHECK p_delspl <> c_no.
      CALL FUNCTION 'RSPO_R_RDELETE_SPOOLREQ'
           EXPORTING
                spoolid = ld_spool_nr.
    ENDFORM.
    *&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
          Send email
    FORM send_file_as_email_attachment tables it_message
                                              it_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription
                                              p_sender_address
                                              p_sender_addres_type
                                     changing p_error
                                              p_reciever.
      DATA: ld_error    TYPE sy-subrc,
            ld_reciever TYPE sy-subrc,
            ld_mtitle LIKE sodocchgi1-obj_descr,
            ld_email LIKE  somlreci1-receiver,
            ld_format TYPE  so_obj_tp ,
            ld_attdescription TYPE  so_obj_nam ,
            ld_attfilename TYPE  so_obj_des ,
            ld_sender_address LIKE  soextreci1-receiver,
            ld_sender_address_type LIKE  soextreci1-adr_typ,
            ld_receiver LIKE  sy-subrc.
    data:   t_packing_list like sopcklsti1 occurs 0 with header line,
            t_contents like solisti1 occurs 0 with header line,
            t_receivers like somlreci1 occurs 0 with header line,
            t_attachment like solisti1 occurs 0 with header line,
            t_object_header like solisti1 occurs 0 with header line,
            w_cnt type i,
            w_sent_all(1) type c,
            w_doc_data like sodocchgi1.
      ld_email   = p_email.
      ld_mtitle = p_mtitle.
      ld_format              = p_format.
      ld_attdescription      = p_attdescription.
      ld_attfilename         = p_filename.
      ld_sender_address      = p_sender_address.
      ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
      w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name  = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu  = sy-langu.
      w_doc_data-obj_name   = 'SAPRPT'.
      w_doc_data-obj_descr  = ld_mtitle.
      w_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = it_attach[].
    Describe the body of the message
      CLEAR t_packing_list.
      REFRESH t_packing_list.
      t_packing_list-transf_bin = space.
      t_packing_list-head_start = 1.
      t_packing_list-head_num = 0.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE it_message LINES t_packing_list-body_num.
      t_packing_list-doc_type = 'RAW'.
      APPEND t_packing_list.
    Create attachment notification
      t_packing_list-transf_bin = 'X'.
      t_packing_list-head_start = 1.
      t_packing_list-head_num   = 1.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
      t_packing_list-doc_type   =  ld_format.
      t_packing_list-obj_descr  =  ld_attdescription.
      t_packing_list-obj_name   =  ld_attfilename.
      t_packing_list-doc_size   =  t_packing_list-body_num * 255.
      APPEND t_packing_list.
    Add the recipients email address
      CLEAR t_receivers.
      REFRESH t_receivers.
      t_receivers-receiver = ld_email.
      t_receivers-rec_type = 'U'.
      t_receivers-com_type = 'INT'.
      t_receivers-notif_del = 'X'.
      t_receivers-notif_ndel = 'X'.
      APPEND t_receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
           EXPORTING
                document_data              = w_doc_data
                put_in_outbox              = 'X'
                sender_address             = ld_sender_address
                sender_address_type        = ld_sender_address_type
                commit_work                = 'X'
           IMPORTING
                sent_to_all                = w_sent_all
           TABLES
                packing_list               = t_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = t_receivers
           EXCEPTIONS
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8.
    Populate zerror return code
      ld_error = sy-subrc.
    Populate zreceiver return code
      LOOP AT t_receivers.
        ld_receiver = t_receivers-retrn_code.
      ENDLOOP.
    ENDFORM.
    Reward points if found helpfull....
    Venkoji.

  • Convert word 2010 TOC to pdf without numbering and hyperlink errors

    I made an automatic TOC (Table of Contents) for my Manual of procedures using the automatic creation under the Reference tab-create a table of contents. It looks great in word. I made sure the hyperlink is clicked in word as well. When I convert this document to pdf using adobe acrobat XI, the numbering of the TOC just changes to incorrect numbering. And the hyperlinks work only for a few initial pages only. I have 22 pages. Once converted, the TOC shows that I only have 16 pages and the linking is incorrect. How can I convert this and keep the numbering correct and also allow for the hyperlinks in the pdf document? Any help is appreciated. Thank you.
    -nisha

    Y.J. Lee wrote:
    I bought this product (Adobe XI pro) for the same purpose. After waisting many hours and digging through google and Adobe community, I learned it doesn't work, at least not for Mac. I HATE ADOBE!!!! GIVE MY MONEY BACK!
    This is a 15-20 year od bug in Acrobat. That Adobe refuse to fix. In this case they blame MS Office claiming they don't have the "proper hooks" for web Links. But it’s a red herring. The Mac Version of Office has the same exact hooks as the PC version. You can take a Mac version of the word file. Unopened on a PC and Drop on AcrobatPC and the links will appear. This has been proven by MS MVP's and employees. The defect is squarely with Acrobat and acrobat alone.
    You can have weblinks as long as they have been created with Office Auto-correct feature both http: 's and mailto: 's.  Go to Print menu > hold down PDF key until context menu apppears. Next choose adobe PDF. Now when first screen appears choose quality of PDF and whether to have Acrobat or reader Open immediately.   Click okay. Next screen  browse to desired save location. And you can alter the name. Click save. Tou links will appear and will be active.
    Another way which is easier  for one or two page PDF's:
    Save word file in .docx format.
    Now Dragthe file from save location and Drop on top of the Acrobat icon in the Dock.
    Wait for a few minutes while file is processed (it like using Distiller) You might be able to dring a couple of cups of tea or coffee while waiting.
    The the PDF will suddenly appear
    Save immediately.
    Now any links created by autocorrect will appear and be active.
    Both of these two methods only started working in Acrobat X, and XI so someone finally figured partially how to fix the 15 year old Problem

  • Uploading DOC,PDF etc files and sending it to External user

    Hi,
        I m facing problem in sending doc,pdf,excel files to an external user on his personal email id (gmail,yahoo,etc)as an attchmnent.
        While creating Claim ( T code:- CLM1) the user will attach a file and I want to send it to the external Email ID using 'SO_NEW_DOCUMENT_ATT_SEND_API1' .
        Currently I m not been able to find out the location where the file is getting stored.
    Please guide me on that
    Thanks
    Vinit.

    Hello,
    I saw your question and after reading Tamo's blog, here is the answer to your questions:
    1. how you should initialize the outputstream.
    you do not initialize the outputStream, the Weblogic container does that for you, the call response.getOutputStream() returns a ready to use stream.
    2. what should I do with the outputstream after that, I mean how to show to user. do I need another conversion from outputstream to another datatype File forexample.
    you simply flush the output to the client, and the client will render the blob depending on the mimeType. since the output stream writes to the response that is sent back to the client.
    by the way, those two questions has more to do with J2EE than ADF.
    Best Regards,
    Ahmad Al-Zamer

  • How to read excel file in document library and store excel content in sql table

    Hello,
    Can anyone help me how to read the excel file present in document library and store the content inside excel into sql table?
    Please let me know the ways to acheive this. Feel free to give your suggestions.
    Thanks,
    Cool Developer

    Hi!
    this code i have written becuase i donot find any soltions on net for this , u can try with this . :)
    System.Data.OleDb.
    OleDbConnection ExcelConnection = null;
    FileMode fileMode;
    string filePath = ConfigurationManager.AppSettings["TempLoaction"] + "\\" + fileName;
    using (SPSite _site = new SPSite(SPContext.Current.Web.Url))
    using (SPWeb _web = _site.OpenWeb())
    string docLibrary = ConfigurationManager.AppSettings["DocumentLibrary"];
    SPFile _file = _web.GetFile("/" + docLibrary + "/" + fileName);
    fileMode =
    FileMode.Create;
    byte[] byteArray = _file.OpenBinary();
    MemoryStream dataStream = new MemoryStream(byteArray);
    Stream stream = dataStream;
    using (FileStream fs = File.Open(filePath, fileMode))
    byte[] buffer = new byte[4096];
    int bytesRead;
    while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) != 0)
    fs.Write(buffer, 0, bytesRead);
    fs.Close();
    //Create the Connection String
    try
    string ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;
    Data Source ='"
    + filePath + "'; Extended Properties=Excel 5.0";
    //Create the connection
    ExcelConnection =
    new System.Data.OleDb.OleDbConnection(ConnectionString);
    //create a string for the query
    string ExcelQuery;
    //Sheet1 is the sheet name
    //create the query:
    //read columns from the Excel file
    ExcelQuery =
    "Select * from [Sheet1$]"; // from Sheet1";
    //use "Select * ... " to select the entire sheet
    //create the command
    System.Data.OleDb.
    OleDbCommand ExcelCommand = new System.Data.OleDb.OleDbCommand(ExcelQuery, ExcelConnection);
    //Open the connection
    ExcelConnection.Open();
    //Create a reader
    System.Data.OleDb.
    OleDbDataReader ExcelReader;
    ExcelReader = ExcelCommand.ExecuteReader();
    //For each row after the first
    while (ExcelReader.Read())
    thanks,
    kshitij

  • Output of report in excel and sending thatexcel as mail

    Hi all,
    I need to send a mail which contain the output of a report in excel sheet.
    Please tell me how to do this or of having plese give the sample code
    Regards
    Ajay

    hi check this..
    REPORT  ZMAIL.
    TABLES: ekko.
    PARAMETERS: p_email   TYPE somlreci1-receiver.
    TYPES: BEGIN OF t_ekpo,
      ebeln TYPE ekpo-ebeln,
      ebelp TYPE ekpo-ebelp,
      aedat TYPE ekpo-aedat,
      matnr TYPE ekpo-matnr,
    END OF t_ekpo.
    DATA: it_ekpo TYPE STANDARD TABLE OF t_ekpo INITIAL SIZE 0,
          wa_ekpo TYPE t_ekpo.
    TYPES: BEGIN OF t_charekpo,
      ebeln(10) TYPE c,
      ebelp(5)  TYPE c,
      aedat(8)  TYPE c,
      matnr(18) TYPE c,
    END OF t_charekpo.
    DATA: wa_charekpo TYPE t_charekpo.
    DATA:   it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
                    WITH HEADER LINE.
    DATA:   it_attach TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
                    WITH HEADER LINE.
    DATA:   t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
            t_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
            t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
            t_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE,
            t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
            w_cnt TYPE i,
            w_sent_all(1) TYPE c,
            w_doc_data LIKE sodocchgi1,
            gd_error    TYPE sy-subrc,
            gd_reciever TYPE sy-subrc.
    *START_OF_SELECTION
    START-OF-SELECTION.
      Retrieve sample data from table ekpo
      PERFORM data_retrieval.
      Populate table with detaisl to be entered into .xls file
      PERFORM build_xls_data_table.
    *END-OF-SELECTION
    END-OF-SELECTION.
    Populate message body text
      perform populate_email_message_body.
    Send file by email as .xls speadsheet
      PERFORM send_file_as_email_attachment
                                   tables it_message
                                          it_attach
                                    using p_email
                                          'Example .xls documnet attachment'
                                          'XLS'
                                          'filename'
                                 changing gd_error
                                          gd_reciever.
      Instructs mail send program for SAPCONNECT to send email(rsconn01)
      PERFORM initiate_mail_execute_program.
    *&      Form  DATA_RETRIEVAL
          Retrieve data form EKPO table and populate itab it_ekko
    FORM data_retrieval.
      SELECT ebeln ebelp aedat matnr
       UP TO 10 ROWS
        FROM ekpo
        INTO TABLE it_ekpo.
    ENDFORM.                    " DATA_RETRIEVAL
    *&      Form  BUILD_XLS_DATA_TABLE
          Build data table for .xls document
    FORM build_xls_data_table.
      data: ld_store(50) type c.  "Leading zeros
      CONSTANTS: con_cret(5) TYPE c VALUE '0D',  "OK for non Unicode
                 con_tab(5) TYPE c VALUE '09'.   "OK for non Unicode
    *If you have Unicode check active in program attributes thnen you will
    *need to declare constants as follows
    *class cl_abap_char_utilities definition load.
    *constants:
       con_tab  type c value cl_abap_char_utilities=>HORIZONTAL_TAB,
       con_cret type c value cl_abap_char_utilities=>CR_LF.
      CONCATENATE 'EBELN' 'EBELP' 'AEDAT' 'MATNR' INTO it_attach SEPARATED BY con_tab.
      CONCATENATE con_cret it_attach  INTO it_attach.
      APPEND  it_attach.
      LOOP AT it_ekpo INTO wa_charekpo.
    *Modification to retain leading zeros
      inserts code for excell REPLACE command into ld_store
      =REPLACE("00100",1,5,"00100")
        concatenate '=REPLACE("' wa_charekpo-ebelp '",1,5,"'
                                 wa_charekpo-ebelp '")' into ld_store .
      concatenate ld_store into .xls file instead of actual value(ebelp)
        CONCATENATE wa_charekpo-ebeln ld_store  wa_charekpo-aedat wa_charekpo-matnr  INTO it_attach SEPARATED BY con_tab.
        CONCATENATE con_cret it_attach  INTO it_attach.
        APPEND  it_attach.
      ENDLOOP.
    ENDFORM.                    " BUILD_XLS_DATA_TABLE
    *&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
          Send email
    FORM send_file_as_email_attachment tables pit_message
                                              pit_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription
                                              p_sender_address
                                              p_sender_addres_type
                                     changing p_error
                                              p_reciever.
      DATA: ld_error    TYPE sy-subrc,
            ld_reciever TYPE sy-subrc,
            ld_mtitle LIKE sodocchgi1-obj_descr,
            ld_email LIKE  somlreci1-receiver,
            ld_format TYPE  so_obj_tp ,
            ld_attdescription TYPE  so_obj_nam ,
            ld_attfilename TYPE  so_obj_des ,
            ld_sender_address LIKE  soextreci1-receiver,
            ld_sender_address_type LIKE  soextreci1-adr_typ,
            ld_receiver LIKE  sy-subrc.
      ld_email   = p_email.
      ld_mtitle = p_mtitle.
      ld_format              = p_format.
      ld_attdescription      = p_attdescription.
      ld_attfilename         = p_filename.
      ld_sender_address      = p_sender_address.
      ld_sender_address_type = p_sender_addres_type.
    Fill the document data.
      w_doc_data-doc_size = 1.
    Populate the subject/generic message attributes
      w_doc_data-obj_langu = sy-langu.
      w_doc_data-obj_name  = 'SAPRPT'.
      w_doc_data-obj_descr = ld_mtitle .
      w_doc_data-sensitivty = 'F'.
    Fill the document data and get size of attachment
      CLEAR w_doc_data.
      READ TABLE it_attach INDEX w_cnt.
      w_doc_data-doc_size =
         ( w_cnt - 1 ) * 255 + STRLEN( it_attach ).
      w_doc_data-obj_langu  = sy-langu.
      w_doc_data-obj_name   = 'SAPRPT'.
      w_doc_data-obj_descr  = ld_mtitle.
      w_doc_data-sensitivty = 'F'.
      CLEAR t_attachment.
      REFRESH t_attachment.
      t_attachment[] = pit_attach[].
    Describe the body of the message
      CLEAR t_packing_list.
      REFRESH t_packing_list.
      t_packing_list-transf_bin = space.
      t_packing_list-head_start = 1.
      t_packing_list-head_num = 0.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE it_message LINES t_packing_list-body_num.
      t_packing_list-doc_type = 'RAW'.
      APPEND t_packing_list.
    Create attachment notification
      t_packing_list-transf_bin = 'X'.
      t_packing_list-head_start = 1.
      t_packing_list-head_num   = 1.
      t_packing_list-body_start = 1.
      DESCRIBE TABLE t_attachment LINES t_packing_list-body_num.
      t_packing_list-doc_type   =  ld_format.
      t_packing_list-obj_descr  =  ld_attdescription.
      t_packing_list-obj_name   =  ld_attfilename.
      t_packing_list-doc_size   =  t_packing_list-body_num * 255.
      APPEND t_packing_list.
    Add the recipients email address
      CLEAR t_receivers.
      REFRESH t_receivers.
      t_receivers-receiver = ld_email.
      t_receivers-rec_type = 'U'.
      t_receivers-com_type = 'INT'.
      t_receivers-notif_del = 'X'.
      t_receivers-notif_ndel = 'X'.
      APPEND t_receivers.
      CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
           EXPORTING
                document_data              = w_doc_data
                put_in_outbox              = 'X'
                sender_address             = ld_sender_address
                sender_address_type        = ld_sender_address_type
                commit_work                = 'X'
           IMPORTING
                sent_to_all                = w_sent_all
           TABLES
                packing_list               = t_packing_list
                contents_bin               = t_attachment
                contents_txt               = it_message
                receivers                  = t_receivers
           EXCEPTIONS
                too_many_receivers         = 1
                document_not_sent          = 2
                document_type_not_exist    = 3
                operation_no_authorization = 4
                parameter_error            = 5
                x_error                    = 6
                enqueue_error              = 7
                OTHERS                     = 8.
    Populate zerror return code
      ld_error = sy-subrc.
    Populate zreceiver return code
      LOOP AT t_receivers.
        ld_receiver = t_receivers-retrn_code.
      ENDLOOP.
    ENDFORM.
    *&      Form  INITIATE_MAIL_EXECUTE_PROGRAM
          Instructs mail send program for SAPCONNECT to send email.
    FORM initiate_mail_execute_program.
      WAIT UP TO 2 SECONDS.
      SUBMIT rsconn01 WITH mode = 'INT'
                    WITH output = 'X'
                    AND RETURN.
    ENDFORM.                    " INITIATE_MAIL_EXECUTE_PROGRAM
    *&      Form  POPULATE_EMAIL_MESSAGE_BODY
           Populate message body text
    form populate_email_message_body.
      REFRESH it_message.
      it_message = 'Please find attached a list test ekpo records'.
      APPEND it_message.
    endform.                    " POPULATE_EMAIL_MESSAGE_BODY

Maybe you are looking for