How to include body of the mail along with attachment using the below FM

Hi All,
I am using the FM 'SO_NEW_DOCUMENT_ATT_SEND_API1' to generate an e-mail with excel file as attachment. Can you please  let me know how to include body of the e-mail along with this attachment.
Thanks & Regards
Gowthami

hi,
see this code
TABLES: apqi.                         "Queue info definition
TYPES DECLARATION
*& Global Types
TYPE-POOLS: slis,                     "Type for alv list
            sx.                       "SAP connect
TYPE-POOLS: list.
*& Types
TYPES: BEGIN OF s_itab_apqi.
        INCLUDE STRUCTURE apqi.
TYPES: END OF s_itab_apqi.
           INTERNAL TABLE / WORK AREA DECLARATION             *
*&  For email  attachment
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:   it_packing_list  LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
        it_contents      LIKE solisti1 OCCURS 0 WITH HEADER LINE  ,
        it_receivers     LIKE somlreci1 OCCURS 0 WITH HEADER LINE ,
        it_attachment    LIKE solisti1 OCCURS 0 WITH HEADER LINE  ,
        it_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE  .
DATA:   v_cnt            TYPE i                                   ,
        v_sent_all(1)    TYPE c                                   ,
        v_doc_data       LIKE sodocchgi1                          ,
        gd_error         TYPE sy-subrc                            ,
        gd_reciever      TYPE sy-subrc                            .
DATA: p_email   TYPE somlreci1-receiver
                             VALUE 'mail id here of the reciever'.
*&   Variable for attachment name
DATA: v_attach(12).
*&   Internal table to get data from apqi table
table here
DATA: ws_line TYPE slis_listheader.
DATA: it_list_top_of_page TYPE slis_t_listheader.
CONSTANTS : v_formname_top_of_page TYPE slis_formname VALUE 'TOP_OF_PAGE'.
VARIABLE DECLARATION
DATA: v_colpos        TYPE i.
DATA: v_transcnt(10)  TYPE c,
      v_transcnte(10) TYPE c,
      v_transcntf(10) TYPE c,
      v_msgcnt(10)    TYPE c,
      v_qid(20)       TYPE c.
DATA  v_tot_rec(3)    TYPE n.
DATA :v_date(10) TYPE c,
      v_time(8) TYPE c .
DATA: v_fromdate(10) .
DATA: v_todate(10) .
SELCTION SCREEN
SELECTION-SCREEN BEGIN OF BLOCK blk1 WITH FRAME TITLE text-015.
PARAMETERS:
SELECTION-SCREEN END OF BLOCK blk1.
AT SELCTION SCREEN
AT SELECTION-SCREEN.
  IF p_dfrom IS INITIAL AND
     NOT p_dato IS INITIAL.
    MESSAGE e000(zp) WITH text-020.
  ENDIF.
START OF SELECTION
START-OF-SELECTION.
*&  To get data from APQI table into internal table
  PERFORM populate_itab.
**To Populate table with details to be entered into .xls file
  PERFORM build_xls_data_table.
END OF SELECTION
END-OF-SELECTION.
*& To display ALV list when IT_APQI is not initial
  IF NOT it_apqi[] IS INITIAL.
*&-- Send an Notification email
    PERFORM send_email .
*&--To populate fields for ALV
    PERFORM build_fieldcat   .
    PERFORM build_eventcat   .
    PERFORM e04_comment_build  USING it_list_top_of_page[].
    PERFORM build_layout     .
    PERFORM build_sortcat    .
    PERFORM start_list_viewer.
  ELSE.
*&-- If no record exists in IT_APQI internal table then message is displayed
    MESSAGE s000(zp) WITH text-021.
  ENDIF.
FORMS **********************************
populate itab here -
*&      Form  BUILD_FIELDCAT
FORM build_fieldcat .
ENDFORM.                    " BUILD_FIELDCAT
*&      Form  BUILD_EVENTCAT
FORM build_eventcat .
  DATA: v_header(25) .
  CONCATENATE 'ZPIPY016' p_dfrom p_dato INTO v_header.
  CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
    EXPORTING
      i_list_type     = 0
    IMPORTING
      et_events       = it_eventcat[]
    EXCEPTIONS
      list_type_wrong = 1
      OTHERS          = 2.
  READ TABLE it_eventcat WITH KEY name = slis_ev_top_of_page
                             INTO wa_eventcat.
  IF sy-subrc = 0.
    MOVE v_formname_top_of_page TO wa_eventcat-form.
    APPEND wa_eventcat TO it_eventcat.
  ENDIF.
ENDFORM.                    " BUILD_EVENTCAT
*&      Form  BUILD_LAYOUT
FORM build_layout .
  ws_layout-no_keyfix           = 'X'.
  ws_layout-group_buttons       = 'X'.
  ws_layout-colwidth_optimize   = 'X'.
ENDFORM.                    " BUILD_LAYOUT
*&      Form  BUILD_SORTCAT
FORM build_sortcat .
  CLEAR wa_sortcat.
  CLEAR v_colpos.
ENDFORM.                    " BUILD_SORTCAT
*&      Form  START_LIST_VIEWER
FORM start_list_viewer .
  DATA: ws_pgm  LIKE sy-repid.
*& To Display ALV list
  ws_pgm = sy-repid.
  CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
      i_callback_program = ws_pgm
      is_layout          = ws_layout
      it_fieldcat        = it_fieldcat
      it_sort            = it_sortcat
      i_save             = 'A'
      it_events          = it_eventcat
    TABLES
      t_outtab           = it_apqi
    EXCEPTIONS
      program_error      = 1
      OTHERS             = 2.
ENDFORM.                    " START_LIST_VIEWER
*&      Form  BUILD_XLS_DATA_TABLE
FORM build_xls_data_table .
  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.
*& To populate it_attach table to be send as email.
  CONCATENATE 'Error of transaction SM35' ' '
     INTO it_attach SEPARATED BY con_tab.
  CONCATENATE con_cret it_attach  INTO it_attach.
  APPEND  it_attach.
*& To gettotal number of error records
  DESCRIBE TABLE it_apqi LINES v_tot_rec .
  CONCATENATE  'Number of Errors  = '  v_tot_rec
            INTO it_attach SEPARATED BY con_tab.
  CONCATENATE con_cret it_attach  INTO it_attach.
  APPEND  it_attach.
  CONCATENATE text-001
              text-002
              text-003
              text-004
              text-005
              text-006
              text-007
              text-008
              text-009
              text-010
              text-011
              text-012
         INTO it_attach SEPARATED BY con_tab.
  CONCATENATE con_cret it_attach  INTO it_attach.
  APPEND  it_attach.
*& To populate it_attach from it_apqi
  LOOP AT it_apqi INTO wa_apqi.
*& To get the date format in DD/MM/YYYY
    WRITE wa_apqi-credate TO v_date  DD/MM/YYYY.
*& To get time format in hh:mm:ss.
    v_time = wa_apqi-cretime.
    CONCATENATE  v_time(2) ':' v_time2(2) ':' v_time4(2) INTO v_time.
    v_transcnt  = wa_apqi-transcnt.
    v_transcnte = wa_apqi-transcnte.
    v_transcntf = wa_apqi-transcntf.
    v_msgcnt    = wa_apqi-msgcnt.
    v_qid       = wa_apqi-qid.
    CONCATENATE wa_apqi-groupid wa_apqi-creator
                     wa_apqi-qstate v_date
                     v_time wa_apqi-progid
                     wa_apqi-userid  v_transcnt
                     v_transcnte v_transcntf
                     v_msgcnt v_qid
               INTO it_attach SEPARATED BY con_tab.
    CONCATENATE con_cret it_attach  INTO it_attach.
    APPEND  it_attach  .
    CLEAR   it_attach  .
    CLEAR:  v_transcnt ,
            v_transcnte,
            v_transcntf,
            v_msgcnt   ,
            v_qid      ,
            v_date     ,
            v_time     .
  ENDLOOP.
ENDFORM  .                    " BUILD_XLS_DATA_TABLE
*&      Form  POPULATE_EMAIL_MESSAGE_BODY
FORM populate_email_message_body .
  REFRESH it_message.
  it_message = 'message here'.
  APPEND it_message.
  CLEAR it_message.
ENDFORM.                    " POPULATE_EMAIL_MESSAGE_BODY
*&      Form  SEND_FILE_AS_EMAIL_ATTACHMENT
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.
  v_doc_data-doc_size = 1.
Populate the subject/generic message attributes
  v_doc_data-obj_langu = sy-langu.
  v_doc_data-obj_name  = 'SAPRPT'.
  v_doc_data-obj_descr = ld_mtitle .
  v_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
  CLEAR v_doc_data.
  READ TABLE it_attach INDEX v_cnt.
  v_doc_data-doc_size =
     ( v_cnt - 1 ) * 255 + STRLEN( it_attach ).
  v_doc_data-obj_langu  = sy-langu.
  v_doc_data-obj_name   = 'SAPRPT'.
  v_doc_data-obj_descr  = ld_mtitle.
  v_doc_data-sensitivty = 'F'.
  CLEAR it_attachment.
  REFRESH it_attachment.
  it_attachment[] = pit_attach[].
Describe the body of the message
  CLEAR it_packing_list.
  REFRESH it_packing_list.
  it_packing_list-transf_bin = space.
  it_packing_list-head_start = 1.
  it_packing_list-head_num = 0.
  it_packing_list-body_start = 1.
  DESCRIBE TABLE it_message LINES it_packing_list-body_num.
  it_packing_list-doc_type = 'RAW'.
  APPEND it_packing_list.
Create attachment notification
  it_packing_list-transf_bin = 'X'.
  it_packing_list-head_start = 1.
  it_packing_list-head_num   = 1.
  it_packing_list-body_start = 1.
  DESCRIBE TABLE it_attachment LINES it_packing_list-body_num.
  it_packing_list-doc_type   =  ld_format.
  it_packing_list-obj_descr  =  ld_attdescription.
  it_packing_list-obj_name   =  ld_attfilename.
  it_packing_list-doc_size   =  it_packing_list-body_num * 255.
  APPEND it_packing_list.
Add the recipients email address
  CLEAR it_receivers.
  REFRESH it_receivers.
  it_receivers-receiver = ld_email.
  it_receivers-rec_type = 'U'.
  it_receivers-com_type = 'INT'.
  it_receivers-notif_del = 'X'.
  it_receivers-notif_ndel = 'X'.
  APPEND it_receivers.
  CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
    EXPORTING
      document_data              = v_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                = v_sent_all
    TABLES
      packing_list               = it_packing_list
      contents_bin               = it_attachment
      contents_txt               = it_message
      receivers                  = it_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 it_receivers.
    ld_receiver = it_receivers-retrn_code.
  ENDLOOP.
ENDFORM.                    " SEND_FILE_AS_EMAIL_ATTACHMENT
*&      Form  SEND_EMAIL
FORM send_email .
Populate message body text
  PERFORM populate_email_message_body.
  PERFORM send_file_as_email_attachment
                               TABLES it_message
                                      it_attach
                                USING p_email
                                      'Error Sessions from SM35'
                                      'XLS'
                                      'filename'
                                      v_attach
                             CHANGING gd_error
                                      gd_reciever.
ENDFORM.                    " SEND_EMAIL
*&      Form  E04_COMMENT_BUILD
      text
     -->E04_LT_TOP_OF_PAGE  text
FORM e04_comment_build USING lt_top_of_page TYPE slis_t_listheader.
  CLEAR: v_fromdate,
         v_todate.
  WRITE p_dfrom TO v_fromdate  DD/MM/YYYY.
  WRITE p_dato TO  v_todate    DD/MM/YYYY.
*& To write header in ALV list
*& Program name
  CLEAR ws_line.
  ws_line-typ  = 'H'.
  ws_line-info = text-016.
  APPEND ws_line TO lt_top_of_page.
  CLEAR ws_line.
  ws_line-typ  = 'S'.
  ws_line-key = text-018.
  ws_line-info = v_tot_rec.
  APPEND ws_line TO lt_top_of_page.
*& Date from
  CLEAR ws_line.
  ws_line-typ  = 'S'.
  ws_line-key  = text-050.
  ws_line-info = v_fromdate.
  APPEND ws_line TO lt_top_of_page.
*& Date to
  CLEAR ws_line.
  ws_line-typ  = 'S'.
  ws_line-key  = text-051.
  ws_line-info = v_todate.
  APPEND ws_line TO lt_top_of_page.
ENDFORM.                    "E04_COMMENT_BUILD
      FORM TOP_OF_PAGE                                              *
FORM top_of_page.
*& To write Heading in Top of page
  CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
      it_list_commentary = it_list_top_of_page.
ENDFORM.                    "TOP_OF_PAGE
thanks

Similar Messages

  • How could I re-open my mail box with error message :The last time you opened Mail, it unexpectedly quit while reopening windows. Do you want to try to reopen its windows again?

    How could I re-open my mail box, as an error message blocked "The last time you opened Mail, it unexpectedly quit while reopening windows. Do you want to try to reopen its windows again?" Even I entered re-open, the airbook does not response but prompt the same error message again.

    Please follow these directions to delete the Mail "sandbox" folders. In OS X 10.9 there are two sandboxes, while in 10.8 there is only one. If you're running a version older than 10.8, this comment isn't applicable.
    Back up all data.
    Triple-click anywhere in the line below on this page to select it:
    ~/Library/Containers/com.apple.mail
    Right-click or control-click the highlighted line and select
    Services ▹ Reveal
    from the contextual menu.* A Finder window should open with a folder named "com.apple.mail" selected. If it does, move the selected folder — not just its contents — to the Desktop. Leave the Finder window open for now.
    Log out and log back in. Launch Mail and test. If the problem is resolved, you may have to recreate some of your Mail settings. You can then delete the folder you moved and close the Finder window. If you still have the problem, quit Mail again and put the folder back where it was, overwriting the one that may have been created in its place. Repeat with this line:
    ~/Library/Containers/com.apple.MailServiceAgent
    Caution: If you change any of the contents of the sandbox, but leave the folder itself in place, Mail may crash or not launch at all. Deleting the whole sandbox will cause it to be rebuilt automatically.
    *If you don't see the contextual menu item, copy the selected text to the Clipboard by pressing the key combination  command-C. In the Finder, select
    Go ▹ Go to Folder...
    from the menu bar, paste into the box that opens (command-V). You won't see what you pasted because a line break is included. Press return.

  • How to access MS Exchange Server Mail and download attachment using Java ??

    Hi guys,
    I need to develop a program to access my inbox from MS Exchange Server and also download the attachment using Java language !! Any example code or any site which got tutorial on this ? Thanks !!

    Here is a java file that connects to a users exchange account, reads all messages, and writes the attachment to the file system.
    import java.io.*;
    import java.util.*;
    import javax.mail.*;
    import javax.mail.internet.*;
    import javax.activation.*;
    public class TestNew {
    public static void main (String args[]) throws Exception {
    // Create empty properties
    Properties props = new Properties();
    // Get session
    Session session = Session.getInstance(props, null);
    // Get the store
    Store store = session.getStore("imap");
    // Connect to store
    store.connect(host, username, password);
    // Get folder
    Folder topFolder = store.getDefaultFolder();
    Folder folder = literature.getFolder("newFolder");
    folder.open(Folder.READ_WRITE);
    Message[] msg = folder.getMessages();
    for(int i = 0; i < msg.length; i++){
    Address[] from = msg.getFrom();
    String subject = msg[i].getSubject();
    Object o = msg[i].getContent();
    if (o instanceof MimeMultipart) { //attachements available?
    MimeMultipart mm = (MimeMultipart) o;
    int mmCount = mm.getCount();
    for (int m = 0; m < mmCount; m++) { // for each part
    Part part = mm.getBodyPart(m);
    String disposition = part.getDisposition();
    if ((disposition != null) && ((disposition.equals(Part.ATTACHMENT) || disposition.equals(Part.INLINE)))) {
    InputStream is = null;
    File tempFile = new File("D:\\TEMP\\mailtest\\" + part.getFileName());
    FileOutputStream fos = null;
    try {
    fos = new FileOutputStream(tempFile);
    is = part.getInputStream();
    int byteCount = 0;
    byte[] bytes = new byte[128];
    while ( (byteCount = is.read(bytes, 0, bytes.length)) > -1) { //use full read() method for GZIPInputStream to be treated correctly
    fos.write(bytes, 0, byteCount);
    finally {
    try {
    if (fos != null)
    fos.close();
    catch (IOException ioe) {}
    try {
    if (is != null)
    is.close();
    catch (IOException ioe) {}
    System.out.println("Content: " + o);
    System.out.println(from[0].toString());
    System.out.println(subject);

  • How to Embed HTML into a Infopath form with out using the custom code???

    Hi ,
    This my first post in MSDN, so kindly ignore if there is any faults/mistakes.
    scenario:
    I am updating a HyperLink(url) to an infopath Field (Such as Rich text box /Label) from a third party workflow(Nintex),it is not able to embed the html data .is it possible to embed html controls like <a> and <Br> tags in the infopath form?????

    The InfoPath form can be configured to export some of the fields as columns... by doing so, the workflow can simply update the list item's metadata, and the value is pushed into the InfoPath form data.
    Scott Brickey
    MCTS, MCPD, MCITP
    www.sbrickey.com
    Strategic Data Systems - for all your SharePoint needs

  • How do you change apps on your phone with out using the home button?

    Just trying to see if there is an easier way.

    You can enable Assistive Touch which puts a small square with a circle on your screen and can use that to switch apps/exit to the Home Screen, I believe.
    ~Lyssa

  • How to display the alv report blocks wise with out using the blocked alv

    Hi
    How to display the alv report with out using the blocked alv function module.
    Thanks
    Chinnu

    see this Standard Program
    RPR_ABAP_SOURCE_SCAN

  • Hello everyone. I have my itunes account for some years, and i've purchased far too many apps and music. Now the company i work for, has to change my account in the iphone, in order to use the corporate mails and calendar. How can i keep my applications?

    Hello everyone. I have my itunes account for some years, and i've purchased far too many apps and music. Now the company i work for, has to change my account in the iphone, in order to use the corporate mails and calendar. How can i keep my applications and music?

    Read here:
    http://support.apple.com/kb/ht5621
    Changing your Apple ID to your current, working email address will not create another Apple ID, it will only change it to your working email address.

  • PO output type to send a mail  to the user along with PO output as PDF file

    Hi Friends,
    I have one requirement from client.
    Client wants the PO output to be converted to PDF format and sent to User while doing the PO release through e-mail. Can anybody guide me how to Configure a New Output Type and convert the PO output into PDF and send to User through e-mail.
    Thanks
    Nazer

    This can be done with the standard form itself.
    first find out the output type u r using.
    Then goto T-code NACE and then choose EF- purchase order and then select the output type u r using.
    Then goto the 'processing Routines' at the lefe side of the screen.
    There u can find out the output forms for this output typr u r using. Here add 'Simple mail-7' in the list and then give the program name and the smartform or the script u r using.
    We can also give the mail texts for this output form.
    After that goto ME22N and then choose the 'Messages' tab and then click the simple mail and in the 'communication method' kindly provide the mail id for which the PO mail has to be sent.
    And then the mail can be viewed in the inbox of the recipient.
    in this way we can sent the PO mail to the corresponding mail address,.
    I guess this will solve ur issue.
    Thanks and Regards
    Siva
    Edited by: Sivaprakash R on Apr 20, 2009 1:00 PM
    Edited by: Sivaprakash R on Apr 20, 2009 1:00 PM

  • I like the mail feature with one exception; I cannot figure out how to change the font size of incoming mail permanently.  And, when answering an email I have to highlight the first few words and zoom it so I can see what I am writing.  what am I missing?

    I like the mail feature with one exception; I cannot figure out how to change the font size of incoming mail permanently.  And, when answering an email I have to highlight the first few words and zoom it so I can see what I am writing.  what am I missing?

    You can type the email using what you set in preferences and then highlight the text and use command - minus sign (or command - + for larger) to reduce the size of the text.
    You can also type command - T and a window will appear allowing you to select fonts/sizes/color/ background highlight.
    The above works in Notes also. I haven't tried to do this in any other Apple application.
    For incoming emails, you can use the above to reduce font size, but I don't know of a way to permanently set the incoming font size to a default.

  • After downloading OSX Mavericks, my AOL mailbox has disappeared and all the AOL messages get dumped into the inbox along with the gmail messages. How can I get the AOL mailbox back?

    After downloading OSX Mavericks, my AOL mailbox has disappeared and all AOL messages have been lumped in the inbox along with my gmail messages. What do I have to do to get my AOL mailbox back?

    Linking AOL and gmail?  I don't know what that means.  But if it means what I think it does - that you have the AOL and gmail servers chatting directly with each other through some configuration, I'd definitely disable that.
    In general, the messages either aren't deleted, or aren't correctly deleted, or there's a protocol or network error, or some sort of a mail server error.
    First diagnostic is a mailbox repair.  Mail.app > Mailbox > Rebuild
    Then verify that the credentials are correct and the connection is reliable:
    Mail.app > Window > Connection Doctor
    And yes, if you have gmail and AOL chatting directly with each other, undo that.

  • How can I add the date at the top of the screen along with the day and time display?

    Hello,
    How can I add the date at the top of the screen along with the day and time display?
    Thanks so much!

    Open System Preferences>Date & Time:
    Ciao.

  • When I launch Mail, the last email on the bottom of the mail list is highlighted, not the latest email on the top. How do I correct that?

    When I launch Mail, the last email on the bottom of the mail list is highlighted, not the latest email on the top. How do I correct that?

    When I launch Mail, the last email on the bottom of the mail list is highlighted, not the latest email on the top. How do I correct that?

  • Sending Body of letter Through mail along with PDF file.

    Dear friends,
          I want to write some text in the mail(Body) while sending the PDF file.
              Now I am sending PDF file , besides PDF file I have to write some text in the mail.
                     Please help me .
                                                                            Thanks ,
                                                                              Praveen.

    here is sample code.... Check the perform set_up_email_body.....
    FORM send_mail .
    Set up the header,body ,file attachment of the message.
      PERFORM set_up_email_hdr.
      PERFORM set_up_email_body.
      PERFORM set_up_att_file.
      CLEAR: wa_objtxt.
      SORT t_fieldcat BY no_out col_pos.
    Set up patcking list for attachment
      wa_objpack-body_start = w_tabln + 1.
    Loop at report and separate by semi-colons
      CLEAR: w_tabln.
      SORT t_fieldcat BY no_out col_pos.
    Loop at report and append header values
      LOOP AT t_fieldcat INTO fs_fieldcat WHERE no_out = space.
        IF wa_objtxt IS INITIAL.
          wa_objtxt = fs_fieldcat-seltext_l.
        ELSE.
          CONCATENATE wa_objtxt
                      fs_fieldcat-seltext_l
                 INTO wa_objtxt
         SEPARATED BY c_comma.
        ENDIF.                             " IF WA_OBJTXT ...
        CONDENSE wa_objtxt NO-GAPS.
      ENDLOOP.                             " LOOP AT T_FIELDCAT ...
      IF sy-subrc EQ 0.
        APPEND wa_objtxt TO t_objtxt.
      ENDIF.                               " IF SY-SUBRC ...
    Fill Email attachment
      PERFORM fill_email_report.
      DESCRIBE TABLE t_objtxt LINES w_tabln.
      CLEAR W_LINE.
      READ TABLE t_objtxt INTO w_line INDEX w_tabln.
      IF SY-SUBRC EQ 0.
        fs_docda-doc_size = ( w_tabln - c_1 ) * 255 + STRLEN( w_line ).
        wa_objpack-body_num = w_tabln.
        wa_objpack-doc_size = w_tabln * 255.
        APPEND wa_objpack TO t_objpack.
    Add receipients to the mail.
        PERFORM add_recipients.
    send the mail
        PERFORM call_send.
      ENDIF.                               " IF SY-SUBRC EQ 0.
    ENDFORM.                               " SEND_MAIL
    *&      Form  add_recipients
          This subroutine is used to add receipients to send mail.
          There are no parameters passed to this subroutine.
    FORM add_recipients .
      IF p_user IS NOT INITIAL.
        wa_receiver-receiver = p_user.
        wa_receiver-rec_type = c_u.
        APPEND wa_receiver TO t_receiver.
      ELSE.
        wa_receiver-receiver = p_dlist.
        wa_receiver-rec_type = c_c.
        APPEND wa_receiver TO t_receiver.
      ENDIF.                               " IF P_USER ...
    ENDFORM.                               " ADD_RECIPIENTS
    *&      Form  call_send
          This subroutine is used to send the mail.
          There are no parameters passed to this subroutine.
    FORM call_send .
      IF t_objtxt[] IS NOT INITIAL.
    Send the mail.
        CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
          EXPORTING
            document_data              = fs_docda
            put_in_outbox              = c_x
            commit_work                = c_x
          TABLES
            packing_list               = t_objpack
            object_header              = t_objhead
            contents_txt               = t_objtxt
            receivers                  = t_receiver
          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 NE 0.
          MESSAGE s100(ra) WITH text-e05.
          STOP.
        ELSE.
          MESSAGE s100(ra) WITH text-026.
        ENDIF.                             " IF SY-SUBRC ...
      ELSE.
        MESSAGE s100(ra) WITH text-029.
        STOP.
      ENDIF.                               " IF T_OBJTXT[] ...
    ENDFORM.                               " CALL_SEND
    *&      Form  set_up_email_hdr
          This subroutine is used to Setup the attributes of the Document
          There are no interface parameters to this subroutine.
    FORM set_up_email_hdr .
      MOVE text-i03 TO fs_docda-obj_name.
      IF sy-sysid+0(1) NE c_p.
        CONCATENATE text-i02 text-i03 INTO fs_docda-obj_descr.
      ELSE.
        MOVE text-i03 TO fs_docda-obj_descr.
      ENDIF.                               " IF SY-SYSID+0(1) ...
    ENDFORM.                               " SET_UP_EMAIL_HDR
    *&      Form  set_up_email_body
          This subroutine is used to set body of an email
          There are no interface parameters to this subroutine.
    FORM set_up_email_body .
    Setting the attributes of the document.
      IF P_ZCR3 EQ C_X.
        wa_objtxt-line = text-007.
      ELSEIF P_REL EQ C_X  AND P_CHECK NE C_X.
        wa_objtxt-line = text-008.
      ELSEIF P_REL EQ C_X AND P_CHECK EQ C_X.
        wa_objtxt-line = text-008.
      ELSE.
        wa_objtxt-line = text-009.
      ENDIF.                               " IF P_ZCR3 ...
      APPEND wa_objtxt TO t_objtxt.
      DESCRIBE TABLE t_objtxt LINES w_tabln.
      CLEAR W_LINE.
      READ TABLE t_objtxt INTO w_line INDEX w_tabln.
      IF SY-SUBRC EQ 0.
        fs_docda-doc_size = ( w_tabln - 1 ) * 255 + STRLEN( w_line ).
        wa_objpack-head_start = c_1.
        wa_objpack-head_num   = c_0.
        wa_objpack-body_start = c_1.
        wa_objpack-body_num   = w_tabln.
        wa_objpack-doc_type   = c_RAW.
        APPEND wa_objpack TO t_objpack.
      ENDIF.                               " IF SY-SUBRC EQ 0.
    ENDFORM.                               " SET_UP_EMAIL_BODY
    *&      Form  set_up_att_file
          This subroutine is used to set up an attachment file.
          There are no interface parameterst that need to be passed to
          this subroutine.
    FORM set_up_att_file .
    Attaching the file to the mail.
      wa_objhead-line = c_fname.
      APPEND wa_objhead TO t_objhead.
      wa_objpack-head_start = c_1.
      wa_objpack-head_num   = c_1.
      wa_objpack-body_start = w_tabln.
      wa_objpack-doc_type   = c_CSV.
      IF P_ZCR3 EQ C_X.
        wa_objpack-obj_name   = text-012.
        wa_objpack-obj_descr  = text-012.
      ELSEIF P_REL EQ C_X.
        wa_objpack-obj_name   = text-027.
        wa_objpack-obj_descr  = text-027.
      ELSE.
        wa_objpack-obj_name   = text-028.
        wa_objpack-obj_descr  = text-028.
      ENDIF.                               " IF P_ZCRE EQ....
    ENDFORM.                               " SET_UP_ATT_FILE

  • How do I delete a voice mail message before listening to the message ?

    How do I delete a voice mail message before listening to the message ?

    Hi ,
    I see what you mean.This cannot be deleted without calling the voicemail.
    You can remove the voicemail if you no longer want this.
    Or ring the voicemail from a different number and delete it this way.
    Thanks.

  • TS3694 I am using iphone 3gs, I upgraded my i-os to 6.0 from 5.1.1 however I am facing performance issue, along with this all the applications including settings or any other shuts down automatically. Is there any way by which I can use my phone in better

    I am using iphone 3gs, I upgraded my i-os to 6.0 from 5.1.1 however I am facing performance issue, along with this all the applications including settings or any other shuts down automatically. Is there any way by which I can use my phone in better way?

    No, downgrading from any version of iOS to an earlier version is not supported.

Maybe you are looking for

  • CS3 and windows 7.

    I have cs3 and windows 7 64 bit.  I was able to run cs3 in xp, but everytime I try 7 it hangs up right before it asks for my serial number.  The installation is perfect, everything goes great, but when I open cs3 it opens up a blank cs3 window, and t

  • GR for a Subcontract PO

    Hello all, Can anyone help me about this issue? <b>Action:</b> Partial Goods Receipt for a subcontracting PO with item category 'L', with BOM explosion. We've send all the components to our subcontract Vendor. And when we are about to do the MIGO, an

  • Position of the days and dates being on the right side of the day in the week calendar.

    I'm having a huge problem with the days and dates being on the right side of the day in the week calendar. Can I change that to the left upper side? it makes the whole schedule off balance you see.

  • GL Account and Cost Element Description

    Hi, Does it make good sense that GL account description is 50 char while Cost element description is 40 char?

  • Links in Acrobat auf Datei und Seite möglich?

    Moin liebe Leute, ist es möglich aus einem PDF-Dok über einen Link ein PDF-Dok in einem neuen Fester zu öffnen und gleich die richtige Seite angezeigt zu bekommen? Ich sehe leider keine entsprechenden Optionen in den normalen Menues (oder ich habe si