How to send ALV report Output through mail in background !

Hi ,
I had an ALV Report. I want to send this report output to patricular email id every day ! Presenty i do this manually. I run the report and send the output to the particular email address. Now i want to schecule the report daily in background and the out put of the report should be mailed to particular email ids in background itself. How can i do this ?
Is there and method or setting through which we can do this ?
Regards

Hi Nau,
For this requirement you will have to write another program.
This program will convert the spool requests into PDF document and sends an email  to the recipients that you specify.
These are the threads which are already posted in The SDN.
*http://wiki.sdn.sap.com/wiki/display/Snippets/Converts+spool+request+into+PDF+document+and+emails*
*<a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="353650"></a>*
*<a class="jive_macro jive_macro_thread" href="" __jive_macro_name="thread" modifiedtitle="true" __default_attr="902985"></a>*
You need to use the Function module :
-- Sending the document
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
I will provide you with the code to get this functionality.
*&      Form  SEND_EMAIL
form SEND_EMAIL .
DATA:   t_mailpack   TYPE sopcklsti1 OCCURS 0 WITH HEADER LINE,
          t_mailhead   TYPE solisti1   OCCURS 0 WITH HEADER LINE,
          t_mailbin    TYPE solisti1   OCCURS 0 WITH HEADER LINE,
          t_mailtxt    TYPE solisti1   OCCURS 0 WITH HEADER LINE,
          t_mailrec    TYPE somlreci1  OCCURS 0 WITH HEADER LINE.
  DATA: wa_maildata    TYPE sodocchgi1,
        l_filename(50) TYPE c,
        l_fldname(30)  TYPE c,
        l_fldval(100)  TYPE c,
        l_lines        TYPE i,
        l_text         TYPE text128 .
  DATA: w_email_subrc  TYPE i.
  DATA: w_ship like vbfa-vbeln.
  CLEAR: wa_maildata,
         t_mailtxt,
         t_mailbin,
         t_mailpack,
         t_mailhead,
         t_mailrec.
  REFRESH: t_mailtxt,
           t_mailbin,
           t_mailpack,
           t_mailhead,
           t_mailrec.
*-- Fill output file
*- Fill header
  CLEAR: t_mailbin.
*  t_mailbin[] = pdf_tab[].
  t_mailbin[] = it_att[].     "Uthaman
*This line is added to get the shipment no in Subject Line
SELECT SINGLE * FROM vbfa WHERE vbelv EQ nast-objky
                            AND vbtyp_v EQ c_vbtyp_v_j
                            AND vbtyp_n EQ c_vbtyp_n_8.
w_ship = vbfa-vbeln.
shift w_ship left deleting leading '0'.
*-- File name
if nast-kschl EQ 'ZFPL'.
  CLEAR l_filename.
  CONCATENATE 'Packing List -'
              sy-datum+4(2) sy-datum+6(2) sy-datum(4) '.PDF' INTO l_filename.
*-- Creation of the document to be sent File Name
  wa_maildata-obj_name = 'Packing List'.
*-- Mail Subject
  CONCATENATE l_filename '-' 'Shipment No -' w_ship INTO wa_maildata-obj_descr SEPARATED BY space.
*-- Mail Contents
  t_mailtxt-line = 'Packing List'.
  APPEND t_mailtxt.
ENDIF.
if nast-kschl EQ 'ZFBA'.
  CLEAR l_filename.
  CONCATENATE 'Booking Advice -'
              sy-datum+4(2) sy-datum+6(2) sy-datum(4) '.PDF'
              INTO l_filename.
*-- Creation of the document to be sent File Name
  wa_maildata-obj_name = 'Booking Advice'.
*-- Mail Subject
  CONCATENATE l_filename '-' 'Shipment No -' w_ship INTO wa_maildata-obj_descr SEPARATED BY space.
*-- Mail Contents
  t_mailtxt-line = 'Packing List'.
  APPEND t_mailtxt.
ENDIF.
*-- Prepare Packing List
*-- Write Packing List (Main Subject)
  CLEAR: l_lines, t_mailpack.
  DESCRIBE TABLE t_mailtxt LINES l_lines.
*  READ TABLE t_mailtxt INDEX l_lines.
  t_mailpack-doc_size = ( l_lines - 1 ) * 255 + STRLEN( t_mailtxt ).
*  CLEAR t_mailpack-transf_bin.
  t_mailpack-transf_bin = ' '.
  t_mailpack-head_start = 1.
  t_mailpack-head_num = 0.
  t_mailpack-body_start = 1.
  t_mailpack-body_num = l_lines.
  t_mailpack-doc_type = 'RAW'.
  APPEND t_mailpack.
  t_mailhead = l_filename.
  APPEND t_mailhead.
*-- Write Packing List (Attachment)
  CLEAR: l_lines, t_mailpack.
  DESCRIBE TABLE pdf_tab[] LINES l_lines.
*  READ TABLE pdf_tab INDEX l_lines.
  t_mailpack-doc_size = ( l_lines - 1 ) * 255 + STRLEN( t_mailbin ).
  t_mailpack-transf_bin = 'X'.
  t_mailpack-head_start = 1.
  t_mailpack-head_num = 1.
  t_mailpack-body_start = 1.
  t_mailpack-body_num = l_lines.
  t_mailpack-doc_type = 'PDF'.
  t_mailpack-obj_name = l_filename.
  t_mailpack-obj_descr = l_filename.
  t_mailpack-obj_langu = 'E'.
  APPEND t_mailpack.
*-- Set recipients
tables :  ztotcemail.
SELECT SINGLE * FROM vbfa WHERE vbelv EQ nast-objky
                            AND vbtyp_v EQ c_vbtyp_v_j
                            AND vbtyp_n EQ c_vbtyp_n_8.
CLEAR vttk.
SELECT SINGLE * FROM vttk WHERE tknum EQ vbfa-vbeln.
SELECT SINGLE * FROM ztotcemail WHERE tplst = vttk-tplst
                                  AND lifnr = vttk-tdlnr.
IF SY-SUBRC EQ 0.
  t_mailrec-receiver = ztotcemail-smtp_addr. "'Here you will give the email address'.
  t_mailrec-rec_type  = 'U'.
  APPEND t_mailrec.
ENDIF.
**-- Sending the document
  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data              = wa_maildata
      put_in_outbox              = 'X'
*      commit_work                = 'X'  " N-16
    TABLES
      packing_list               = t_mailpack
      object_header              = t_mailhead
      contents_bin               = t_mailbin[]
      contents_txt               = t_mailtxt[]
      receivers                  = t_mailrec
    EXCEPTIONS
      too_many_receivers         = 1
      document_not_sent          = 2
      operation_no_authorization = 4
      OTHERS                     = 99.
  w_email_subrc = sy-subrc.
  IF sy-subrc EQ 0.
    MESSAGE s000(zotc) WITH 'Email output sent successfully'.
  ELSE.
    MESSAGE s000(zotc) WITH 'Can not send email output'.
  ENDIF.
endform.                    " SEND_EMAIL
Hope the above information will be helpful.
Regards,
Kittu

Similar Messages

  • How to send a smartform result through mail?

    How to send a smartform result through mail?

    HI,
    YOu can convert the output of Smartform into a attachment say PDF file & then send it across through mail.
    Refer following program:
    <a href="http://www.sapdevelopment.co.uk/reporting/rep_spooltopdf.htm">http://www.sapdevelopment.co.uk/reporting/rep_spooltopdf.htm</a>
    Best regards,
    Prashant

  • How to send a report output as a FAX ?

    Hallo Experts,
    How to send a report output as a FAX ?
    Suppose if I have all the data in an internal table, I will show it as a normal list OR ALV list output.
    In the application tool bar I should have a button, and by clicking it the output should go to the customer as FAX. How can I send it to a FAX ? Any Function modules ?
    Please help me with an example program.
    Regards,
    Matt.

    Hi,
    Hope the code given below helps you.
    FORM SEND_FAX
    TABLES DOC2FAX STRUCTURE TEST_DOC
    USING COUNTRY
    NUMBER.
    DATA: SID(5) TYPE N.
    DATA BEGIN OF POPT.
    INCLUDE STRUCTURE ITCPO.
    DATA END OF POPT.
    DATA BEGIN OF PRES.
    INCLUDE STRUCTURE ITCPP.
    DATA END OF PRES.
    CLEAR POPT.
    POPT-TDCOPIES = 1. " one copy
    * POPT-TDDEST = " done internaly by script,
    * POPT-TDPRINTER = " do not fill !!!
    POPT-TDNEWID = 'X'. " do not reuse old spool request
    POPT-TDDATASET = 'TEST'(022). " fill as you want
    POPT-TDSUFFIX1 = 'FAX'(023). " fill as you want
    POPT-TDSUFFIX2 = SY-UNAME. " fill as you want
    POPT-TDIMMED = 'X'. " send now
    POPT-TDLIFETIME = 8. " keep 8 days in spool
    POPT-TDTELENUM = NUMBER. " number without country code
    POPT-TDTELELAND = COUNTRY. " country of recipient
    POPT-TDCOVER = 'test fax'(024).
    POPT-TDCOVTITLE = 'test fax'(024).
    * POPT-TDIEXIT = 'X'.
    CALL FUNCTION 'PRINT_TEXT'
    EXPORTING
    APPLICATION = 'TX'
    ARCHIVE_INDEX = ' '
    ARCHIVE_PARAMS = ' '
    DEVICE = 'TELEFAX' "<<< here we say: fax it !
    DIALOG = 'X'
    HEADER = HEADER
    OPTIONS = POPT
    IMPORTING
    RESULT = PRES
    TABLES
    LINES = DOC2FAX
    EXCEPTIONS
    OTHERS = 01.
    * do not bother with exception in sample code
    * CANCELED = 01
    * DEVICE = 02
    * FORM = 03
    * OPTIONS = 04
    * UNCLOSED = 05
    * UNKNOWN = 06
    * FORMAT = 07
    * TEXTFORMAT = 08
    * EXTERNAL = 09.
    IF SY-SUBRC = 0.
    * arriving here means we could send:
    SID = PRES-TDSPOOLID.
    IF SID > '00000'.
    MESSAGE S433 WITH SID.
    ENDIF.
    LEAVE .
    ELSE.
    * do not bother with exception in sample code
    MESSAGE A400 WITH 'PRIN_TEXT'.
    ENDIF.
    ENDFORM. " SEND_FAX
    Regards,
    Siddarth

  • How to send the report output to the application server in a excel file

    Hello,
    how to send the report output to the application server in a excel file.
    and the report runs in background.
    Thanks in advance.
    Sundeep

    Dear Sundeep.
    I'm providing you with the following piece of code ... Its working fine for me ... hopefully it suits your requirement ...
    D A T A D E C L A R A T I O N *
    TYPES: BEGIN OF TY_EXCEL,
    CELL_01(80) TYPE C,
    CELL_02(80) TYPE C,
    CELL_03(80) TYPE C,
    CELL_04(80) TYPE C,
    CELL_05(80) TYPE C,
    CELL_06(80) TYPE C,
    CELL_07(80) TYPE C,
    CELL_08(80) TYPE C,
    CELL_09(80) TYPE C,
    CELL_10(80) TYPE C,
    END OF TY_EXCEL.
    DATA: IT_EXCEL TYPE STANDARD TABLE OF TY_EXCEL,
    WA_EXCEL TYPE TY_EXCEL..
    E V E N T : S T A R T - O F - S E L E C T I O N *
    START-OF-SELECTION.
    Here you populate the Internal Table.
    Display - Top of the Page.
    PERFORM DISPLAY_TOP_OF_PAGE.
    E V E N T : E N D - O F - S E L E C T I O N *
    END-OF-SELECTION.
    SET PF-STATUS 'GUI_STATUS'.
    E V E N T : A T U S E R - C O M M AN D *
    AT USER-COMMAND.
    CASE SY-UCOMM.
    WHEN 'EXPORT'.
    Exporting the report data to Excel.
    PERFORM EXPORT_TO_EXCEL.
    ENDCASE.
    *& Form DISPLAY_TOP_OF_PAGE
    text
    --> p1 text
    <-- p2 text
    FORM DISPLAY_TOP_OF_PAGE .
    SKIP.
    WRITE: /05(128) SY-ULINE,
    /05 SY-VLINE,
    06(127) 'O R I C A'
    CENTERED COLOR 1,
    132 SY-VLINE.
    WRITE: /05(128) SY-ULINE,
    /05 SY-VLINE,
    06(127) 'Shift Asset Depreciation - Period/Year-wise Report.'
    CENTERED COLOR 4 INTENSIFIED OFF,
    132 SY-VLINE.
    WRITE: /05(128) SY-ULINE.
    E X C E L O P E R A T I O N
    CLEAR: IT_EXCEL[],
    WA_EXCEL.
    PERFORM APPEND_BLANK_LINE USING 1.
    WA_EXCEL-cell_02 = ' XYZ Ltd. '.
    APPEND WA_EXCEL TO IT_EXCEL.
    CLEAR: WA_EXCEL.
    WA_EXCEL-cell_02 = 'Shift Asset Depreciation - Period/Year-wise Report.'.
    APPEND WA_EXCEL TO IT_EXCEL.
    PERFORM APPEND_BLANK_LINE USING 1.
    ENDFORM. " DISPLAY_TOP_OF_PAGE
    *& Form APPEND_BLANK_LINE
    text
    -->P_1 text
    FORM APPEND_BLANK_LINE USING P_LINE TYPE I.
    DO P_LINE TIMES.
    CLEAR: WA_EXCEL.
    APPEND WA_EXCEL TO IT_EXCEL.
    enddo.
    ENDFORM.
    *& Form EXPORT_TO_EXCEL
    text
    --> p1 text
    <-- p2 text
    FORM EXPORT_TO_EXCEL .
    DATA: L_FILE_NAME(60) TYPE C.
    Create a file name
    CONCATENATE 'C:\' 'Shift_Depn_' SY-DATUM6(2) '.' SY-DATUM4(2)
    '.' SY-DATUM+0(4) INTO L_FILE_NAME.
    Pass the internal table (it_excel which is already populated )
    to the function module for excel download.
    CALL FUNCTION 'WS_EXCEL'
    exporting
    filename = L_FILE_NAME
    tables
    data = IT_EXCEL
    exceptions
    unknown_error = 1
    others = 2.
    if sy-subrc <> 0.
    message e001(ymm) with 'Error in exporting to Excel.'.
    endif.
    ENDFORM. " EXPORT_TO_EXCEL
    *~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    When you click the button - Export to Excel ( GUI-Status) you'll be able to export the content of the Internal Table to an Excel file .......
    Regards,
    Abir
    Don't forget to award Points *

  • Printing ALV Report output through Function Modules

    Hi All,
    I want to print my ALV Grid output through function modules/statement (not through print option in menu).
    This is because, i am generating a PDF from spool when user clicks on a button. If any changes happened in the ALV output layout, they will be captured in spool through printing it.
    So can you please tell me how to print the ALV Output through FMs or sending the ALV output to spool.
    Thanks & Regards,
    Senthil.
    Edited by: senthil nathan on May 17, 2010 2:49 PM

    Hi Dev,
    Thanks for the reply.
    I want to print the ALV when the user clicks on a button in toolbar. Lets say the user has made some changes to the layout, (E.g hiding a field) and when i print that output it should use the changed layout, If i use the FM suggested by you, i cant acheive this.
    If you try to print this manually, the system uses the changed layout and not the original. Thats why i want to know FMs/statement to print.
    Regards,
    Senthil.

  • HOW TO SEND THE REPORTS AND  THROUGH XI TO NON -SAP SYSTEM

    Hi Experts,
                 I want to know how to send the reports and  smartform through xi to another system. All the post blogs are   just explaning only about the FILE-TO-FILE, FILE-TO-IDOCS scenarios only.

    Hi,
    XI is the middleware that to be used to transfer the data between various systems and even you could design the Business Processes with it.
    In R/3 the smartforms, are generally converted to PDF and then  have to send it across to Non SAP systems. Similarly you can convert the smartforms to pdf format and keep it on application server. XI will pick up that pdf and will send it to Non SAP system either as mail or as an attachments.
    ABAP reports are normally used to re-present the data. If you need to transfer this data across the Non SAP systems then you have the IDOCs to be generated, RFC or ABAP Proxy to integrate this data with Non SAP system.
    XI is not restricted only upto file to file or file to IDOC scenarios. It have enormous capabilities to involve various Business Processes as well integrate various SAP or Non SAP systems.
    If need anymore  specific details, please let us know.
    Thanks
    Swarup

  • How to send a report via e-mail

    Hello All,
               I want to send a report via e-mail.
               What should I do for that?
                Please help me out...
    Regards,
    Ravi Khattar.

    Hi,
      Please check the below code....
    data: t_objpack    like sopcklsti1 occurs 1 with header line,
            t_objhead    like solisti1   occurs 1 with header line,
            t_objtxt     like solisti1   occurs 0 with header line,
            t_objbin     like solisti1   occurs 1 with header line,
            t_reclist    like somlreci1  occurs 1 with header line,
            t_lobj       like abaplist   occurs 0 with header line,
            t_listobj    like abaplist   occurs 1 with header line.
      data: v_tab_line1  type i,
            v_tab_line2  type i,
            v_docsize    type i,
            v_len        type i,
            v_line(1250) type c,
            v_subj(132)  type c,
            v_cr(1)      type x value '0D',
            v_linefd(2)  type x value '0D0A',
            v_docdata    like sodocchgi1.
      clear: t_objpack[], t_objhead[], t_objtxt[], t_reclist[], t_listobj[].
      concatenate 'This email is generated from a SAP' sy-sysid '-'
         sy-mandt '- batch environment.' into t_objtxt separated by ' '.
      append t_objtxt.
      t_objtxt = 'Please do not respond to this email.'. append t_objtxt.
      v_docdata-obj_name = 'SAMPLE_TEST'.
      concatenate 'Sales Order Status Attachment -' sy-datum '-' sy-uzeit
             into v_subj separated by ' '.
      v_docdata-obj_descr = v_subj.
      describe table t_objtxt lines v_tab_line1.
      read table t_objtxt index v_tab_line1.
      v_docdata-doc_size   = ( v_tab_line1 - 1 ) * 255 + strlen( t_objtxt ).
      t_objpack-head_start = 1.
      t_objpack-head_num   = 1.
      t_objpack-body_start = 1.
      t_objpack-body_num   = v_tab_line1.
      t_objpack-doc_type   = 'RAW'.
      append t_objpack.
      clear v_line.
      if p_type = '1'.
        loop at t_list.
          concatenate v_line t_list v_linefd into v_line.
          v_len = strlen( v_line ).
          do 4 times.
            if v_len ge 255.
              if v_line+254(1) = v_cr.
                v_line255     = v_line254.
                v_line+254(1)  = ' '.
              endif.
              t_objtxt = v_line(255).
              v_line   = v_line+255.
              v_len    = v_len - 255.
              append t_objtxt.
            else.
              exit.
            endif.
          enddo.
        endloop.
        if v_line ne ' '.
          t_objtxt = v_line(255).
          append t_objtxt.
        endif.
        describe table t_objtxt lines v_tab_line2.
        t_objpack-doc_size   = ( v_tab_line2 - v_tab_line1 ) * 255.
        t_objpack-body_start = v_tab_line1 + 1.
        t_objpack-transf_bin = ' '.
        t_objpack-doc_type   = 'TXT'.
      else.
        t_objbin[] = html[].
        describe table t_objbin lines v_tab_line2.
        t_objpack-doc_size   = v_tab_line2 * 255.
        t_objpack-body_start = 1.
        t_objpack-transf_bin = 'X'.
        t_objpack-doc_type   = 'HTM'.
      endif.
      t_objpack-head_start = 1.
      t_objpack-head_num   = 1.
      t_objpack-body_num   = v_tab_line2.
      t_objpack-obj_name   = 'SAMPLE_TEST'.
      t_objpack-obj_descr  = 'Test'.
      append t_objpack.
      loop at s_email.
        t_reclist-receiver = s_email-low.
        t_reclist-rec_type = 'U'.
        append t_reclist.
      endloop.
      t_reclist-receiver   = sy-uname.
      t_reclist-rec_type   = 'B'.
      append t_reclist.
      call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
           EXPORTING
                document_data = v_docdata
                put_in_outbox = ' '
           TABLES
                packing_list  = t_objpack
                object_header = t_objhead
                contents_bin  = t_objbin
                contents_txt  = t_objtxt
                receivers     = t_reclist.
      if sy-subrc = 0.
       endif.
    Cheers,
    Bujji

  • How to send the ALV report output in mail

    Dear all,
                        I have developed an ALV report.I need to send this output in the mail.Can anyone help me with the sample code of how to do this.

    Hi Ramya,
    Check the links below :
    http://wiki.sdn.sap.com/wiki/display/Snippets/Sending+Mail
    http://wiki.sdn.sap.com/wiki/display/Snippets/AbapEMAILProgram
    http://wiki.sdn.sap.com/wiki/display/ABAP/SendMessagetoExternalemailidandSAPUseridvia+ABAP
    They will explain you to send an email.
    Regards,
    Kittu

  • How to send ALV report by mail

    Hi everybody,
    I would like to know how i can donwload the ALV report to an internal table so i can send it by mail?
    the fact of sending by mail it's already solved.. i tried sending the internal table of the ALV and it was OK, but what i need is to send all the display of the report..i mean..titles..columns,..totals... as i see on the screen.
    for a normal report i used the %_list to send the report to an internal table but for an ALV it doesn't work.
    Regards,
    Vanessa

    Hi Vanessa,
    If you have used Method (Container /Classes) for your ALV.
    You can find "SEND" when you drop down the "Download(UCOMM = %PC)" button at Container. Select "SEND" Option this will bring you Create Document and Send screen.
    Please enter reciepient and send the report.
    Hope this may help you.
    Lanka
    Message was edited by: Lanka Murthy

  • How to send internal table data through mail from report in foreground

    hi all,
    iam trying  to convert the internal table data into excel format and sending it through mail by runnning the report in foreground.
    mail is going sucessfully with excel format,but iam facing the problem in the excel format of the material column as follows:
    the matrno shows the wrong format -2.63E+11  instead of displaying correct format-263215000000.
    Pls suggest the alternative process for the above mentioned problem.
    Thanks,
    Sivagopal R.

    Hi Siva,
      Try to copy 263215000000 in one of the cells of excel sheet and press enter.It will automatically convert into -2.63E+11 .
      This means the default formatting of the excel sheet makes this happen.If you convert the format of the cell to "NUMBER" then u will get the required result.
      But I doubt whether or not it is possible through ABAP programming.
    Regards,
    Vimal.

  • How to send the Report output thru email

    Dear All,
    Is there a way to send the output of a abap report thru mail. I am sure it is there.
    My report output is as following.
    Emp Code : A01234
    Name: XYZ
    Email-ID: [email protected]
    Dear XYZ,
    You have Rs....... as outstanding. Please clear all dues by ..(date).
    Thankyou,
    asdf.
    Please advice how to accomplish this. Send a sample source code if possible.
    Regards,
    Alok.

    Below you can find the sample code for sending the report as email.
    Do use this as cross reference..
    DATA: reclist      LIKE somlreci1  OCCURS 0 WITH HEADER LINE,
            objpack      LIKE sopcklsti1 OCCURS  1 WITH HEADER LINE,
            objhead      LIKE solisti1   OCCURS  1 WITH HEADER LINE,
            objtxt       LIKE solisti1   OCCURS 10 WITH HEADER LINE,
            objhex       LIKE solix      OCCURS 10 WITH HEADER LINE,
            listobject   LIKE abaplist   OCCURS 0  WITH HEADER LINE,
            so_ali       LIKE soli       OCCURS 0  WITH HEADER LINE,
            list_index   LIKE  sy-lsind  VALUE 0,
            packing_list LIKE sopcklsti1,
            docdata      LIKE sodocchgi1,
            tab_lines    TYPE i,
            l_rqident    LIKE tsp01-rqident,
            att_type     LIKE soodk-objtp.
      objtxt[] = mail_text[].
      IF p_skip_attach IS INITIAL.      " INS SIR 3971 TODD
        SYSTEM-CALL LOAD LISTLEVEL-STACK INTO wrkstack.
        IF  wrkstack[] IS INITIAL.
          SKIP 2.
          WRITE: /30 text-001 COLOR 5.
        ENDIF.
      ENDIF.                                " INS SIR 3971 TODD
    Prepare Receipient List
      REFRESH:  reclist.
      LOOP AT rcpnt_userids.
        IF rcpnt_userids-l_adr_name NA '@'.
          reclist-receiver    = rcpnt_userids-usrnam.
          reclist-rec_type    = 'B'.
          reclist-express     = 'X'.
        ELSE.
          reclist-receiver    = rcpnt_userids-l_adr_name.
          reclist-rec_type    = 'U'.
          reclist-express     = 'X'.
        ENDIF.
        APPEND reclist.
        CLEAR reclist.
      ENDLOOP.
    Prepare Doc Data
      DESCRIBE TABLE objtxt LINES tab_lines.
      READ     TABLE objtxt INDEX tab_lines.
      docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
      docdata-obj_langu  = sy-langu.
      docdata-obj_name   = 'ABAP Listing'.
      docdata-obj_descr  = subject.
      docdata-sensitivty = 'O'.
    Prepare OBJPACK
      CLEAR objpack-transf_bin.
      objpack-head_start = 1.
      objpack-head_num   = 0.
      objpack-body_start = 1.
      objpack-body_num   = tab_lines.
      objpack-doc_type   = 'RAW'.
      APPEND objpack.
      att_type = 'ALI'.
      DESCRIBE TABLE so_ali LINES tab_lines.
      READ     TABLE so_ali INDEX tab_lines.
      objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( so_ali ).
      objpack-transf_bin = 'X'.
      objpack-head_start = 1.
      objpack-head_num   = 0.
      objpack-body_start = 1.
      objpack-body_num   = tab_lines.
      objpack-doc_type   = att_type.
      objpack-obj_name   = 'ATTACHMENT'.
      objpack-obj_descr  = subject.
      APPEND objpack.
    SAP supplied API function module to send Message
      CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
        EXPORTING
          document_data              = docdata
          put_in_outbox              = 'X'
          commit_work                = 'X'     "used from rel. 6.10
        TABLES
          packing_list               = objpack
          object_header              = objhead
          contents_bin               = so_ali
          contents_txt               = objtxt
          receivers                  = reclist
        EXCEPTIONS
          too_many_reclist           = 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 i398(00) WITH 'SAP Office API Error'
                              sy-subrc
      ENDIF.

  • How to send ALV report by Email

    Hi.
    we have developed a block ALV report which has 3 reports i.e Detail report , summary report and Error report. Currently user run the report in background.However there is need to send this report by Email . I can use FM:SO_OBJECT_SEND . I want how to pass this report to FM and how to handle if there are multiple email ids. I think we can create a group of the user with email id in business workplace and pass the group to FM.
    I need help in how to assign the report and user group to this FM

    Hi,
    You may use the code given by Amit in this link -
    MAil Attachment.
    It is perfect to handle any type of email requirement.
    Regards,
    Amit
    Reward all helpful replies.

  • How to send ALV report by email, in the body of the email?

    Hello friends,
    I need to send a report ALV by email. First, the user wanted it attached as PDF file, but now he wants it in the body of the email.
    Does anybody have any solution?
    P.S.: I am using methods to send the email.
    Thanks in advance.
    Karla.

    Thank you Jan,
    I used the following solution to get the report in HTML code:
    I use submit to export the list to memory
    SUBMIT zsdr006_alv EXPORTING LIST TO MEMORY AND RETURN.
    Them I get the list from memory
      CALL FUNCTION 'LIST_FROM_MEMORY'
    Finaly I convert the list to HTML code
      CALL FUNCTION 'WWW_HTML_FROM_LISTOBJECT'
    The problem is when I send the email, it is still not going on the body of the email.
    I tried taking off the attach method, but the email goes blank in the body.
    Actually to SOST the message goes with the HMTL report in the body, just like I need, but when send to any e-mail address, it does not go on the body of the message.
    Does any body could check this out?
      TRY.
        -------- create persistent send request ------------------------
          send_request = cl_bcs=>create_persistent( ).
        -------- create and set document with attachment ---------------
        create document from internal table with text
          IF p_pdf EQ 'X'.
            l_type = 'RAW'.
            APPEND text-t01 TO text.
            IF NOT s_erdat-low IS INITIAL.
              CONCATENATE s_erdat-low6(2) '.' s_erdat-low4(2) '.' s_erdat-low(4) INTO ls_text-line.
              IF NOT s_erdat-high IS INITIAL.
                CONCATENATE ls_text-line 'a' INTO ls_text-line SEPARATED BY space.
                CONCATENATE ls_text-line s_erdat-high+6(2) INTO ls_text-line SEPARATED BY space.
                CONCATENATE ls_text-line '.' s_erdat-high+4(2) '.' s_erdat-high(4) INTO ls_text-line.
              ENDIF.
              CONCATENATE 'Período:' ls_text-line INTO ls_text-line SEPARATED BY space.
              APPEND ls_text TO text.
            ENDIF.
          ELSEIF p_htm EQ 'X'.
            l_type = 'HTM'.
            LOOP AT gt_ascdata INTO ls_ascdata.
              ls_text = ls_ascdata-line.
              APPEND ls_text TO text.
            ENDLOOP.
          ENDIF.
          subject = text-t01.
          document = cl_document_bcs=>create_document(
                          i_type    = l_type
                          i_text    = text
                          i_length  = '12'
                          i_subject = subject ).
        add attachment to document
        BCS expects document content here e.g. from document upload
        binary_content = ...
          IF p_pdf EQ 'X'.
            CALL METHOD document->add_attachment
              EXPORTING
                i_attachment_type    = 'PDF'
                i_attachment_subject = g_filename
                i_att_content_hex    = binary_content.
          ELSEIF p_htm EQ 'X'.
            CALL METHOD document->add_attachment
              EXPORTING
                i_attachment_type    = 'HTM'
                i_attachment_subject = g_filename
                i_att_content_text   = gt_ascdata.
          ENDIF.
        add document to send request
          CALL METHOD send_request->set_document( document ).
        --------- set sender -------------------------------------------
        note: this is necessary only if you want to set the sender
              different from actual user (SY-UNAME). Otherwise sender is
              set automatically with actual user.
         sender = cl_sapuser_bcs=>create( sy-uname ).
          lv_email = g_email.
          sender = cl_cam_address_bcs=>create_internet_address( lv_email ).
          CALL METHOD send_request->set_sender
            EXPORTING
              i_sender = sender.
        --------- add recipient (e-mail address) -----------------------
        create recipient - please replace e-mail address !!!
          LOOP AT s_email.
            lv_email = s_email-low.
            recipient = cl_cam_address_bcs=>create_internet_address( lv_email ).
        add recipient with its respective attributes to send request
            CALL METHOD send_request->add_recipient
              EXPORTING
                i_recipient = recipient
                i_express   = 'X'.
          ENDLOOP.
        ---------- send document ---------------------------------------
          CALL METHOD send_request->send(
            EXPORTING
              i_with_error_screen = 'X'
            RECEIVING
              result              = sent_to_all ).

  • How to send existing excel file through mail

    Hello Friends,
    I have to send mail with Excel File attachement. i have already exist Excel file and that file i hv to send through mail. so pl help me out for sending existing excel file .
    i.e. user pickup the exist excel file and that file would be sent to particular mail id.
    thank you,
    Marmik

    Hi marmik,
    1. There is some trick involved
    in the binary files.
    2. I have made a program (and it works fantastic)
    ONLY 6 LINES FOR EMAILING
    BELIEVE ME
    ITS A FANTASTIC PROGRAM.
    IT WILL WORK LIKE OUTLOOK EXPRESS !
    3. The user is provided with
    a) file name
    b) email address to send mail
    and it sends ANY FILE (.xls,.pdf .xyz..)
    Instantaneously !
    4. Make two things first :
    1. Include with the name : ZAMI_INCLFOR_MAIL
    2. Report with the name : ZAM_TEMP147 (any name will do)
    3. Activate both and execute (2)
    4. After providing filename, email adress
    5. Code for Include :
    10.08.2005 Amit M - Created
    Include For Mail (First Req F16)
    Modification Log
    Data
    DATA: docdata LIKE sodocchgi1,
    objpack LIKE sopcklsti1 OCCURS 1 WITH HEADER LINE,
    objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE,
    objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE,
    objbin LIKE solisti1 OCCURS 10 WITH HEADER LINE,
    objhex LIKE solix OCCURS 10 WITH HEADER LINE,
    reclist LIKE somlreci1 OCCURS 1 WITH HEADER LINE.
    DATA: tab_lines TYPE i,
    doc_size TYPE i,
    att_type LIKE soodk-objtp.
    DATA: listobject LIKE abaplist OCCURS 1 WITH HEADER LINE.
    FORM
    FORM ml_customize USING objname objdesc.
    Clear Variables
    CLEAR docdata.
    REFRESH objpack.
    CLEAR objpack.
    REFRESH objhead.
    REFRESH objtxt.
    CLEAR objtxt.
    REFRESH objbin.
    CLEAR objbin.
    REFRESH objhex.
    CLEAR objhex.
    REFRESH reclist.
    CLEAR reclist.
    REFRESH listobject.
    CLEAR listobject.
    CLEAR tab_lines.
    CLEAR doc_size.
    CLEAR att_type.
    Set Variables
    docdata-obj_name = objname.
    docdata-obj_descr = objdesc.
    ENDFORM. "ml_customize
    FORM
    FORM ml_addrecp USING preceiver prec_type.
    CLEAR reclist.
    reclist-receiver = preceiver.
    reclist-rec_type = prec_type.
    APPEND reclist.
    ENDFORM. "ml_customize
    FORM
    FORM ml_addtxt USING ptxt.
    CLEAR objtxt.
    objtxt = ptxt.
    APPEND objtxt.
    ENDFORM. "ml_customize
    FORM
    FORM ml_prepare USING bypassmemory whatatt_type whatname.
    IF bypassmemory = ''.
    Fetch List From Memory
    CALL FUNCTION 'LIST_FROM_MEMORY'
    TABLES
    listobject = listobject
    EXCEPTIONS
    OTHERS = 1.
    IF sy-subrc <> 0.
    MESSAGE ID '61' TYPE 'E' NUMBER '731'
    WITH 'LIST_FROM_MEMORY'.
    ENDIF.
    CALL FUNCTION 'TABLE_COMPRESS'
    IMPORTING
    COMPRESSED_SIZE =
    TABLES
    in = listobject
    out = objbin
    EXCEPTIONS
    OTHERS = 1
    IF sy-subrc <> 0.
    MESSAGE ID '61' TYPE 'E' NUMBER '731'
    WITH 'TABLE_COMPRESS'.
    ENDIF.
    ENDIF.
    Header Data
    Already Done Thru FM
    Main Text
    Already Done Thru FM
    Packing Info For Text Data
    DESCRIBE TABLE objtxt LINES tab_lines.
    READ TABLE objtxt INDEX tab_lines.
    docdata-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
    CLEAR objpack-transf_bin.
    objpack-head_start = 1.
    objpack-head_num = 0.
    objpack-body_start = 1.
    objpack-body_num = tab_lines.
    objpack-doc_type = 'TXT'.
    APPEND objpack.
    Packing Info Attachment
    att_type = whatatt_type..
    DESCRIBE TABLE objbin LINES tab_lines.
    READ TABLE objbin INDEX tab_lines.
    objpack-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objbin ).
    objpack-transf_bin = 'X'.
    objpack-head_start = 1.
    objpack-head_num = 0.
    objpack-body_start = 1.
    objpack-body_num = tab_lines.
    objpack-doc_type = att_type.
    objpack-obj_name = 'ATTACHMENT'.
    objpack-obj_descr = whatname.
    APPEND objpack.
    Receiver List
    Already done thru fm
    ENDFORM. "ml_prepare
    FORM
    FORM ml_dosend.
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
    document_data = docdata
    put_in_outbox = 'X'
    commit_work = 'X' "used from rel. 6.10
    IMPORTING
    SENT_TO_ALL =
    NEW_OBJECT_ID =
    TABLES
    packing_list = objpack
    object_header = objhead
    contents_bin = objbin
    contents_txt = objtxt
    CONTENTS_HEX = objhex
    OBJECT_PARA =
    object_parb =
    receivers = 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 'SO' TYPE 'S' NUMBER '023'
    WITH docdata-obj_name.
    ENDIF.
    ENDFORM. "ml_customize
    FORM
    FORM ml_spooltopdf USING whatspoolid.
    DATA : pdf LIKE tline OCCURS 0 WITH HEADER LINE.
    Call Function
    CALL FUNCTION 'CONVERT_OTFSPOOLJOB_2_PDF'
    EXPORTING
    src_spoolid = whatspoolid
    TABLES
    pdf = pdf
    EXCEPTIONS
    err_no_otf_spooljob = 1
    OTHERS = 12.
    Convert
    PERFORM doconv TABLES pdf objbin.
    ENDFORM. "ml_spooltopdf
    FORM
    FORM doconv TABLES
    mypdf STRUCTURE tline
    outbin STRUCTURE solisti1.
    Data
    DATA : pos TYPE i.
    DATA : len TYPE i.
    Loop And Put Data
    LOOP AT mypdf.
    pos = 255 - len.
    IF pos > 134. "length of pdf_table
    pos = 134.
    ENDIF.
    outbin+len = mypdf(pos).
    len = len + pos.
    IF len = 255. "length of out (contents_bin)
    APPEND outbin.
    CLEAR: outbin, len.
    IF pos < 134.
    outbin = mypdf+pos.
    len = 134 - pos.
    ENDIF.
    ENDIF.
    ENDLOOP.
    IF len > 0.
    APPEND outbin.
    ENDIF.
    ENDFORM. "doconv
    CODE FOR PROGRAM
    5.
    REPORT zam_temp147 .
    INCLUDE zami_inclfor_mail.
    DATA
    DATA : itab LIKE tline OCCURS 0 WITH HEADER LINE.
    DATA : file_name TYPE string.
    data : path like PCFILE-PATH.
    data : extension(5) type c.
    data : name(100) type c.
    SELECTION SCREEN
    PARAMETERS : receiver TYPE somlreci1-receiver lower case.
    PARAMETERS : p_file LIKE rlgrap-filename
    OBLIGATORY.
    AT SELECTION SCREEN
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    CLEAR p_file.
    CALL FUNCTION 'F4_FILENAME'
    IMPORTING
    file_name = p_file.
    START-OF-SELECTION
    START-OF-SELECTION.
    PERFORM ml_customize USING 'Tst' 'Testing'.
    PERFORM ml_addrecp USING receiver 'U'.
    PERFORM upl.
    PERFORM doconv TABLES itab objbin.
    PERFORM ml_prepare USING 'X' extension name.
    PERFORM ml_dosend.
    SUBMIT rsconn01
    WITH mode EQ 'INT'
    AND RETURN.
    FORM
    FORM upl.
    file_name = p_file.
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = file_name
    filetype = 'BIN'
    TABLES
    data_tab = itab
    EXCEPTIONS
    file_open_error = 1
    file_read_error = 2
    no_batch = 3
    gui_refuse_filetransfer = 4
    invalid_type = 5
    no_authority = 6
    unknown_error = 7
    bad_data_format = 8
    header_not_allowed = 9
    separator_not_allowed = 10
    header_too_long = 11
    unknown_dp_error = 12
    access_denied = 13
    dp_out_of_memory = 14
    disk_full = 15
    dp_timeout = 16
    OTHERS = 17.
    path = file_name.
    CALL FUNCTION 'PC_SPLIT_COMPLETE_FILENAME'
    EXPORTING
    complete_filename = path
    CHECK_DOS_FORMAT =
    IMPORTING
    DRIVE =
    EXTENSION = extension
    NAME = name
    NAME_WITH_EXT =
    PATH =
    EXCEPTIONS
    INVALID_DRIVE = 1
    INVALID_EXTENSION = 2
    INVALID_NAME = 3
    INVALID_PATH = 4
    OTHERS = 5
    ENDFORM. "upl
    regards,
    amit m.

  • How to send ALV Report in excel format from SAP

    Hi Gurus,
    We are using SAP 4.7 and using different SAP reports.Now I want to send SAP ALV report in excel format directly from SAP in background.Now we send these reports in background weekly by using autimetic scheduling but this is PDF format.Now I want to change this pdf format to excel format.In SCOT T.Code I am able to find any excel format.Please help me out.
    I am waiting for your reply.
    Advance Thanks
    Nirmal

    Hi Nirmal,
    I have done the same in my previous organisation.For this particular solution you need to ask your basis guys to upgrade the support package so that BCS classes could be available in the system.
    API interafces five some problem with attachemnts and SAP has recommended to use BCS classes.
    Currently BCS classes won't be availbale in 4.7.
    Once the BCS classes are available
    use below code
       CONSTANTS:
        lc_tab          TYPE c VALUE cl_bcs_convert=>gc_tab,
        lc_crlf         TYPE c VALUE cl_bcs_convert=>gc_crlf,
       lc_codepage     TYPE abap_encod VALUE '4103',
    data :
       lv_string      TYPE string,
       binary_content TYPE solix_tab,
       size           TYPE so_obj_len,
       *" Set Heading of Excel File
      CONCATENATE 'Employee DATA'
                   lc_crlf lc_crlf
                   INTO lv_string.
       *" Set Header for Excel Fields
      CONCATENATE lv_string
                  lc_header1 lc_tab
                  lc_header2 lc_tab
                  lc_header3 lc_tab
                  lc_header4 lc_tab
                  lc_header5 lc_tab
                  lc_header6 lc_tab
                  lc_header7 lc_tab
                  lc_header8 lc_tab
                  lc_header9 lc_tab
                  lc_header10 lc_crlf
                  INTO lv_string.
    "lc_header1 to 10 could be your field headers
       "Move Internal table data
      LOOP AT gt_final1 INTO gwa_final1.
        CONCATENATE lv_string
                    gwa_final1-field1     lc_tab
                    gwa_final1-field2      lc_tab
                    gwa_final1-field3    lc_crlf
                    INTO lv_string.
      ENDLOOP.
       *" convert the text string into UTF-16LE binary data including
    *" byte-order-mark. Mircosoft Excel prefers these settings
    *" all this is done by new class cl_bcs_convert (see note 1151257)
      TRY.
          cl_bcs_convert=>string_to_solix(
            EXPORTING
              iv_string   = lv_string
              iv_codepage = lc_codepage  "suitable for MS Excel, leave empty
              iv_add_bom  = abap_true     "for other doc types
            IMPORTING
              et_solix  = binary_content
              ev_size   = size ).
        CATCH cx_bcs.
          MESSAGE e445(so).
      ENDTRY.
      TRY.
    *" create persistent send request
          send_request = cl_bcs=>create_persistent( ).
          document = cl_document_bcs=>create_document(
            i_type    = lc_doc
            i_text    = main_text
            i_subject = lc_sub  ).     
          document->add_attachment(
            i_attachment_type    = lc_attach                    "#EC NOTEXT
            i_attachment_subject = lc_sub                       "#EC NOTEXT
            i_attachment_size    = size
            i_att_content_hex    = binary_content ).
       send_request->set_document( document ).
       recipient = cl_cam_address_bcs=>create_internet_address( email ).
       CALL METHOD send_request->add_recipient
              EXPORTING
                i_recipient = recipient.
       IF recipient IS NOT INITIAL.
            sent_to_all = send_request->send( i_with_error_screen = abap_true ).
            COMMIT WORK.
    *        MESSAGE text-014 TYPE gc_succ  .
          ENDIF.
        CATCH cx_bcs INTO bcs_exception.
          MESSAGE i865(so) WITH bcs_exception->error_type.
      ENDTRY.
    For BCS decalartion u can go to se 38 and see program BCS_EXAMPLE_1 to BCS_EXAMPLE_7.
    Rewrads if helpful.
    Cheers
    Ramesh Bhatt

Maybe you are looking for

  • How do I install Reader 11 to the directory of my choice?

    I have downloaded the Reader 11 for Windows installation file to my hard drive.  Now, how do I install Reader 11 to the directory of my choice?

  • Miro Blocking Based On Date

    Hi Gurus, I am not a functional person but a technical person. But I have been asked to investigate how to block automatically while posting a MM invoice (MIRO) that relates to a PO which is 18 months old. This is similar to R Block (Qty & Price Vari

  • Possible to build PC based frame buffer using PCI 6111?

    I'm considering building a variable scan rate, passive capture frame buffer for Scanning Electron Microscopes. There are no off the shelf frame grabbers that support the clock rates I need and so I'm considering building a line grabber with a DAQ sty

  • Problem with showing page number

    Hi, need a little help please. I changed without intention some settings or something but I can not fix it. I have documents (book chapters) that do not start with page 1 but wit 230 or 130 or some other number, But in the pannel where you ca see the

  • How to measure work centre performance in the pp point and pm pinot of view

    Dear Guru`s, how to evaluate the work centre performance in the pp,pm point? how to evaluate the OEE (overall equipment efficieny)? can anybody suggest that, if there is any transactions are avialable to get the reports or any process is to be follow