Excel sheet as an attachment to the mail box

Hi,
i need to send an excel sheet as an attachement to the outlook mail box..
is any function module is there which serves my requirement? or if any other way is there pls let me know.
thanks..

Here is some sample code.
report zrich_0001.
parameters: p_email   type somlreci1-receiver
                               default [email protected]'.
data: begin of it001 occurs 0,
      bukrs type t001-bukrs,
      butxt type t001-butxt,
      end of it001.
data:   imessage type standard table of solisti1 with header line,
        iattach type standard table of solisti1 with header line,
        ipacking_list like sopcklsti1 occurs 0 with header line,
        ireceivers like somlreci1 occurs 0 with header line,
        iattachment like solisti1 occurs 0 with header line.
start-of-selection.
  select bukrs butxt into table it001 from t001.
*   Populate table with detaisl to be entered into .xls file
  perform build_xls_data .
* Populate message body text
  clear imessage.   refresh imessage.
  imessage = 'Please find attached excel file'.
  append imessage.
* Send file by email as .xls speadsheet
  perform send_email_with_xls tables imessage
                                      iattach
                                using p_email
                                      'Example Excel Attachment'
                                      'XLS'
                                      'TestFileName'
                                      'CompanyCodes'.
*      Form  BUILD_XLS_DATA
form build_xls_data .
  constants: con_cret type x value '0D',  "OK for non Unicode
             con_tab type x 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 'BUKRS' 'BUTXT'
         into iattach separated by con_tab.
  concatenate con_cret iattach into iattach.
  append  iattach.
  loop at it001.
    concatenate it001-bukrs it001-butxt
           into iattach separated by con_tab.
    concatenate con_cret iattach  into iattach.
    append  iattach.
  endloop.
endform.
*      Form  SEND_EMAIL_WITH_XLS
form send_email_with_xls tables pit_message
                                          pit_attach
                                    using p_email
                                          p_mtitle
                                          p_format
                                          p_filename
                                          p_attdescription.
  data: xdocdata like sodocchgi1,
        xcnt type i.
* Fill the document data.
  xdocdata-doc_size = 1.
* Populate the subject/generic message attributes
  xdocdata-obj_langu = sy-langu.
  xdocdata-obj_name  = 'SAPRPT'.
  xdocdata-obj_descr = p_mtitle .
* Fill the document data and get size of attachment
  clear xdocdata.
  read table iattach index xcnt.
  xdocdata-doc_size =
     ( xcnt - 1 ) * 255 + strlen( iattach ).
  xdocdata-obj_langu  = sy-langu.
  xdocdata-obj_name   = 'SAPRPT'.
  xdocdata-obj_descr  = p_mtitle.
  clear iattachment.  refresh iattachment.
  iattachment[] = pit_attach[].
* Describe the body of the message
  clear ipacking_list.  refresh ipacking_list.
  ipacking_list-transf_bin = space.
  ipacking_list-head_start = 1.
  ipacking_list-head_num = 0.
  ipacking_list-body_start = 1.
  describe table imessage lines ipacking_list-body_num.
  ipacking_list-doc_type = 'RAW'.
  append ipacking_list.
* Create attachment notification
  ipacking_list-transf_bin = 'X'.
  ipacking_list-head_start = 1.
  ipacking_list-head_num   = 1.
  ipacking_list-body_start = 1.
  describe table iattachment lines ipacking_list-body_num.
  ipacking_list-doc_type   =  p_format.
  ipacking_list-obj_descr  =  p_attdescription.
  ipacking_list-obj_name   =  p_filename.
  ipacking_list-doc_size   =  ipacking_list-body_num * 255.
  append ipacking_list.
* Add the recipients email address
  clear ireceivers.  refresh ireceivers.
  ireceivers-receiver = p_email.
  ireceivers-rec_type = 'U'.
  ireceivers-com_type = 'INT'.
  ireceivers-notif_del = 'X'.
  ireceivers-notif_ndel = 'X'.
  append ireceivers.
  call function 'SO_DOCUMENT_SEND_API1'
       exporting
            document_data              = xdocdata
            put_in_outbox              = 'X'
            commit_work                = 'X'
       tables
            packing_list               = ipacking_list
            contents_bin               = iattachment
            contents_txt               = imessage
            receivers                  = ireceivers
       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.
endform.
Regards,
Rich Heilman

Similar Messages

  • Adapter Module Error-Sending excel file as an attachment of the mail

    Hi ,
    My scenario is as follows
    1)I am sending an excel file as an attachment of the mail.I need to read that excel attachment as a payload.
    So mail adapter is used in sender side.
      To configure this, have used standard PayloadSwapBean  module with proper module key.
      Next to convert excel to XML another custom adapter module is being used.
    Both this adapter module , I configured into the CC of sender mail adapter.
    The order in which adapter modules are being used in the sender CC are as follows
    1)localejbs/AF_Modules/PayloadSwapBean
    2)localejbs/MDPExcelToXMLConversion
    3)sap.com/com.sap.aii.adapter.mail.app/XIMailAdapterBean
    MDPExcelToXMLConversion-Custom adapter module written to convert excel to xml.
    I am getting the following error
    exception caught during processing mail message [4899]com.sap.aii.af.lib.mp.module.ModuleException
    And also,
    no messages in coming MONI of PI.
    Pls suggest what to do.
    Thanks
    Ayan

    Shabarish,
    Will the ordering in which the adapter modules(In this case there are two-PayloadSwapBean & MDPExcelToXML) are appearing into Module tab of sender adapter matter?
    Firstly, what is happenning
    1)If I take out the custom  adapter module MDPExcelToXML and put only PayloadSwapBean  then it is successfully converting mail attachment into the main Payload i.e PayloadSwapBean   module is working.
    2)Nextly, my local code( i.e java code without including standard Module specific method like ejbActivate(),ejbPassivate(),process()  etc etc.)) for MDPExcelToXML is successfuly converting the excel file into the XML file.Then I am making the local code into adapter module specific code and deploying that.
    A few question arises here,
    Do I need to do any specific configurations here in PI for this particular things.Maybe both the adapter module is clashing with each other.
    And also using tracing and logging into my custom adapter module code.Getting the following error,
    java.io.IOException: Unable to read entire header; 116 bytes read; expected 512 bytes#
    Thanks
    Ayan

  • Sending a formatted Excel sheet as an attachment in a mail.

    Hi ,
    I have been using following code to to send formatted excel sheet as attachment in email.
    in the below code I want to change the format of cell from Bold to Underline.
    I have replaced Bold with Underline for below code but it is not working can anyone suggest on this.
    Department
      r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).
      r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'Header' ).
      r_data = l_document->create_simple_element( name = 'Data'  value = 'MATNR'  parent = r_cell ).
      r_data->set_attribute_ns( name = 'Type'  prefix = 'ss' value = 'String' ).
      r_format->set_attribute_ns( name = 'Bold'  prefix = 'ss'  value = '1' ).
    Creating a ixml Factory
      l_ixml = cl_ixml=>create( ).
    Creating the DOM Object Model
      l_document = l_ixml->create_document( ).
    Create Root Node 'Workbook'
      l_element_root  = l_document->create_simple_element( name = 'Workbook'  parent = l_document ).  l_element_root->set_attribute( name = 'xmlns'  value = 'urn:schemas-microsoft-com:office:spreadsheet' ).   ns_attribute = l_document->create_namespace_decl( name = 'ss'  prefix = 'xmlns'  uri = 'urn:schemas-microsoft-com:office:spreadsheet' ).  l_element_root->set_attribute_node( ns_attribute ).   ns_attribute = l_document->create_namespace_decl( name = 'x'  prefix = 'xmlns'  uri = 'urn:schemas-microsoft-com:office:excel' ).  l_element_root->set_attribute_node( ns_attribute ).
    Create node for document properties.
      r_element_properties = l_document->create_simple_element( name = 'TEST_REPORT'  parent = l_element_root ).  l_value = sy-uname.  l_document->create_simple_element( name = 'Author'  value = l_value  parent = r_element_properties  ).
    Styles
      r_styles = l_document->create_simple_element( name = 'Styles'  parent = l_element_root  ).
    Style for Header
      r_style  = l_document->create_simple_element( name = 'Style'   parent = r_styles  ).  r_style->set_attribute_ns( name = 'ID'  prefix = 'ss'  value = 'Header' ).   r_format  = l_document->create_simple_element( name = 'Font'  parent = r_style  ).
    Worksheet
      r_worksheet = l_document->create_simple_element( name = 'Worksheet'  parent = l_element_root ).  r_worksheet->set_attribute_ns( name = 'Name'  prefix = 'ss'  value = 'PO Details' ).
    Table
      r_table = l_document->create_simple_element( name = 'Table'  parent = r_worksheet ).  r_table->set_attribute_ns( name = 'FullColumns'  prefix = 'x'  value = '1' ).  r_table->set_attribute_ns( name = 'FullRows'     prefix = 'x'  value = '1' ).
    Column Formatting
      r_column = l_document->create_simple_element( name = 'Column'  parent = r_table ).  r_column->set_attribute_ns( name = 'Width'  prefix = 'ss'  value = '70' ).   r_column = l_document->create_simple_element( name = 'Column'  parent = r_table ).  r_column->set_attribute_ns( name = 'Width'  prefix = 'ss'  value = '70' ).   r_column = l_document->create_simple_element( name = 'Column'  parent = r_table ).  r_column->set_attribute_ns( name = 'Width'  prefix = 'ss'  value = '70' ).   r_column = l_document->create_simple_element( name = 'Column'  parent = r_table ).  r_column->set_attribute_ns( name = 'Width'  prefix = 'ss'  value = '70' ).   r_column = l_document->create_simple_element( name = 'Column'  parent = r_table ).  r_column->set_attribute_ns( name = 'Width'  prefix = 'ss'  value = '70' ).
    Blank Row
      r_row = l_document->create_simple_element( name = 'Row'  parent = r_table ).
    Column Headers Row
      r_row = l_document->create_simple_element( name = 'Row'  parent = r_table ).  r_row->set_attribute_ns( name = 'AutoFitHeight'  prefix = 'ss'  value = '1' ).
    Sr. No.
      r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).  r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'Header' ).  r_data = l_document->create_simple_element( name = 'Data'  value = 'EBELN'  parent = r_cell ).  r_data->set_attribute_ns( name = 'Type'  prefix = 'ss' value = 'String' ).
    User Name
      r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).  r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'Header' ).  r_data = l_document->create_simple_element( name = 'Data'  value = 'EBELP'  parent = r_cell ).  r_data->set_attribute_ns( name = 'Type'  prefix = 'ss' value = 'String' ).
    Full Name
      r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).  r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'Header' ).  r_data = l_document->create_simple_element( name = 'Data'  value = 'AEDAT'  parent = r_cell ).  r_data->set_attribute_ns( name = 'Type'  prefix = 'ss' value = 'String' ).
    Department
      r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).  r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'Header' ).  r_data = l_document->create_simple_element( name = 'Data'  value = 'MATNR'  parent = r_cell ).  r_data->set_attribute_ns( name = 'Type'  prefix = 'ss' value = 'String' ).  r_format->set_attribute_ns( name = 'Bold'  prefix = 'ss'  value = '1' ).   r_format  = l_document->create_simple_element( name = 'Interior' parent = r_style  ).  r_format->set_attribute_ns( name = 'Color'   prefix = 'ss'  value = '#C0C0C0' ).  r_format->set_attribute_ns( name = 'Pattern' prefix = 'ss'  value = 'Solid' ).   r_format  = l_document->create_simple_element( name = 'Alignment'  parent = r_style  ).  r_format->set_attribute_ns( name = 'Vertical'  prefix = 'ss'  value = 'Center' ).  r_format->set_attribute_ns( name = 'WrapText'  prefix = 'ss'  value = '1' ).
    Data Table
      LOOP AT it_ekpo INTO wa_ekpo.     r_row = l_document->create_simple_element( name = 'Row'  parent = r_table ).
    Sr. No.
       r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).
       r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'Data' ).
       l_value = sy-tabix.
       CONDENSE l_value NO-GAPS.
       r_data = l_document->create_simple_element( name = 'Data'  value = l_value   parent = r_cell ).           " Data
       r_data->set_attribute_ns( name = 'Type'  prefix = 'ss'  value = 'Number' ).                               " Cell format
    EBELN
        r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).    r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'Data' ).    l_value = wa_ekpo-ebeln.    r_data = l_document->create_simple_element( name = 'Data'  value = l_value   parent = r_cell ).           " Data    r_data->set_attribute_ns( name = 'Type'  prefix = 'ss'  value = 'String' ).                               " Cell format
    EBELP
        r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).    r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'Data' ).    l_value = wa_ekpo-ebelp.    r_data = l_document->create_simple_element( name = 'Data'  value = l_value   parent = r_cell ).           " Data    r_data->set_attribute_ns( name = 'Type'  prefix = 'ss'  value = 'String' ).                               " Cell format
    AEDAT
        r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).    r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'Data' ).    l_value = wa_ekpo-aedat.    r_data = l_document->create_simple_element( name = 'Data'  value = l_value   parent = r_cell ).           " Data    r_data->set_attribute_ns( name = 'Type'  prefix = 'ss'  value = 'String' ).                               " Cell format
    MATNR
        r_cell = l_document->create_simple_element( name = 'Cell'  parent = r_row ).    r_cell->set_attribute_ns( name = 'StyleID'  prefix = 'ss'  value = 'Data' ).    l_value = wa_ekpo-matnr.    r_data = l_document->create_simple_element( name = 'Data'  value = l_value   parent = r_cell ).          " Data    r_data->set_attribute_ns( name = 'Type'  prefix = 'ss'  value = 'String' ).                              " Cell format   ENDLOOP.
    Creating a Stream Factory
      l_streamfactory = l_ixml->create_stream_factory( ).
    Connect Internal XML Table to Stream Factory
      l_ostream = l_streamfactory->create_ostream_itable( table = l_xml_table ).
    Rendering the Document
      l_renderer = l_ixml->create_renderer( ostream  = l_ostream  document = l_document ).  l_rc = l_renderer->render( ).
    Saving the XML Document
      l_xml_size = l_ostream->get_num_written_raw( ).
    Before sending the mail,
    LOOP AT l_xml_table INTO wa_xml.
        CLEAR objbin.
        objbin-line = wa_xml-data.
        APPEND objbin to BINARY_CONTENT.
      ENDLOOP.
    Here, objbin is of type SOLIX and BINARY_CONTENT is of type SOLIX_TAB.
    Now, call the method,
    CALL METHOD DOCUMENT->ADD_ATTACHMENT
            EXPORTING  I_ATTACHMENT_TYPE = 'XLS'
                       I_ATTACHMENT_SUBJECT = 'My attachment'
                       I_ATT_CONTENT_HEX    = BINARY_CONTENT   .

    Try this..
      r_format->set_attribute_ns( name = 'Underline'  prefix = 'ss'  value = 'Single' ).

  • There used to be a preview window in mail where you could read the message in the mail box but now its gone. It just shows me who its from and the date. I now have to click on the message twice to get it to display. How do I get the preview box back?

    There used to be a preview window in mail where you could read the message in the mail box but now its gone. It just shows me who its from and the date. I now have to click on the message twice to get it to display. How do I get the preview box back?

    There is a bug in Mail triggered by receiving a password-protected PDF as an attachment. According to reports, the bug is fixed in OS X 10.8.5.

  • We want the send mail button on the mail box, just like wen you replay an e-mail

    i want the sending buttom for e-mail on the mail box thai i am writing..

    It sounds like you're looking for the button that sends emails you've written, but that haven't successfully been sent yet. The Get Mail button does this.

  • TS4002 I subscribed to serveral communities for email.  I have over a thousand emails,  now the mail box in icloud says I can't open my mail account.  I have ML . I have been deleting little by little, can I delete it all?

    I have tried deleteing all the mail, by selecting all to erase. I have done 5 at a time, 10 at a time by zooming out. Now I can not get into the mail box. I was sent a message saying I am not able to acess my mail. It is a me.com acct. I have 40gb of storage. Any suggestions of how to get rid of this mail? I don't want to give up my email address.    Thanks.    I did manage to stop all communty email and notifications. So no more email is coming.  Again, thanks to anyone who can help me!  Since I homeshare, I am sure all my other computers look the same!  LOL.. I have only myself to blame, I guess.    Linda

    An Alias would be an email address that is delivered to a different account's inbox.
    For instance if you have  [email protected] and have [email protected] Then [email protected] would be an alias if mails from that address arrive at the icloud address.
    If you want to add a completely different account, with a spearate inbox, like an account in hotmail and one in say yahoo mail. Then as has been pointed out, you need to go into the  Settings Icon, Tap on Mail, Contacts, Calendars, and then on add account. The iPad has several services preconfigured, you can tap on one of those from the list to setup an email for that service. Such as Hotmail, Gmail etc...
    Or you can tap on other to add a personal pop3 or imap type email like from your office, or your school.

  • Regarding excel sheet as an attachment to mail

    hi
    am using the  follwing code, it works finely upto sending excel as attachment. But the problem came in data of excel sheet.     
    the data in excel sheet is appearing like this one.
    Butxt data is occupying all columns 
    BUKRS BUTXT
    01      New York Insurance Company
    The code am developed is....
    parameters: p_email   type somlreci1-receiver
                                   default '[email protected]'.
    types: begin of sol,
           text(35),
           end of sol.
    data: begin of it001 occurs 0,
          bukrs type t001-bukrs,
          butxt type t001-butxt,
          end of it001.
    data:   imessage type standard table of solisti1 with header line,
            iattach type standard table of sol with header line,
            ipacking_list like sopcklsti1 occurs 0 with header line,
            ireceivers like somlreci1 occurs 0 with header line,
            iattachment like solisti1 occurs 0 with header line.
    start-of-selection.
      select bukrs butxt into table it001 from t001.
      Populate table with details to be entered into .xls file
      perform build_xls_data .
    Populate message body text
      clear imessage.
      refresh imessage.
      imessage = 'Please find attached excel file'.
      append imessage.
    Send file by email as .xls spreadsheet
      perform send_email_with_xls tables imessage
                                          iattach
                                    using p_email
                                          'Example Excel Attachment'
                                          'XLS'
                                          'TestFileName'
                                          'CompanyCodes'.
        if sy-subrc = 0.
         message i000(zsai).
        endif.
         Form  BUILD_XLS_DATA
    form build_xls_data .
    constants: con_cret(2) type C value '0D',  "OK for non Unicode
                con_tab(2) type C value '09'.   "OK for non Unicode
    *If you have Unicode check active in program attributes then 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 'BUKRS' 'BUTXT'
             into iattach separated by con_tab.
      concatenate con_cret iattach into iattach.
      append  iattach.
      loop at it001.
        concatenate it001-bukrs it001-butxt
               into iattach separated by con_tab.
        concatenate con_cret iattach into iattach.
       iattach = iattach(30).
        append  iattach.
      endloop.
    endform.
         Form  SEND_EMAIL_WITH_XLS
    Send file by email as .xls spreadsheet
    perform send_email_with_xls tables imessage
                                         iattach
                                   using p_email
                                         'Example Excel Attachment'
                                         'XLS'
                                         'TestFileName'
                                         'CompanyCodes'.
    form send_email_with_xls tables pit_message
                                              pit_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription.
      data: xdocdata like sodocchgi1,
            xcnt type i.
    Fill the document data.
      xdocdata-doc_size = 1.
    Populate the subject/generic message attributes
      xdocdata-obj_langu = sy-langu.
      xdocdata-obj_name  = 'SAPRPT'.
      xdocdata-obj_descr = p_mtitle .
    Fill the document data and get size of attachment
      clear xdocdata.
      read table iattach index xcnt.
      xdocdata-doc_size =
         ( xcnt - 1 ) * 255 + strlen( iattach ).
      xdocdata-obj_langu  = sy-langu.
      xdocdata-obj_name   = 'SAPRPT'.
      xdocdata-obj_descr  = p_mtitle.
      clear iattachment.
      refresh iattachment.
      iattachment[] = pit_attach[].
    Describe the body of the message
      clear ipacking_list.
      refresh ipacking_list.
      ipacking_list-transf_bin = space.
      ipacking_list-head_start = 1.
      ipacking_list-head_num = 0.
      ipacking_list-body_start = 1.
      describe table imessage lines ipacking_list-body_num.
      ipacking_list-doc_type = 'RAW'.
      append ipacking_list.
    Create attachment notification
      ipacking_list-transf_bin = 'X'.
      ipacking_list-head_start = 1.
      ipacking_list-head_num   = 1.
      ipacking_list-body_start = 1.
      describe table iattachment lines ipacking_list-body_num.
      ipacking_list-doc_type   =  p_format.
      ipacking_list-obj_descr  =  p_attdescription.
      ipacking_list-obj_name   =  p_filename.
      ipacking_list-doc_size   =  ipacking_list-body_num * 255.
      append ipacking_list.
    Add the recipients email address
      clear ireceivers.  refresh ireceivers.
      ireceivers-receiver = p_email.
      ireceivers-rec_type = 'U'.
      ireceivers-com_type = 'INT'.
      ireceivers-notif_del = 'X'.
      ireceivers-notif_ndel = 'X'.
      append ireceivers.
      call function 'SO_DOCUMENT_SEND_API1'
           exporting
                document_data              = xdocdata
                put_in_outbox              = 'X'
                commit_work                = 'X'
           tables
                packing_list               = ipacking_list
                contents_bin               = iattachment
                contents_txt               = imessage
                receivers                  = ireceivers
           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.
       SUBMIT rsconn01 WITH mode EQ 'INT' AND RETURN.
        COMMIT WORK .
      ENDIF.
    endform.

    hi
    am using the  follwing code, it works finely upto sending excel as attachment. But the problem came in data of excel sheet.     
    the data in excel sheet is appearing like this one.
    Butxt data is occupying all columns 
    BUKRS BUTXT
    01      New York Insurance Company
    The code am developed is....
    parameters: p_email   type somlreci1-receiver
                                   default '[email protected]'.
    types: begin of sol,
           text(35),
           end of sol.
    data: begin of it001 occurs 0,
          bukrs type t001-bukrs,
          butxt type t001-butxt,
          end of it001.
    data:   imessage type standard table of solisti1 with header line,
            iattach type standard table of sol with header line,
            ipacking_list like sopcklsti1 occurs 0 with header line,
            ireceivers like somlreci1 occurs 0 with header line,
            iattachment like solisti1 occurs 0 with header line.
    start-of-selection.
      select bukrs butxt into table it001 from t001.
      Populate table with details to be entered into .xls file
      perform build_xls_data .
    Populate message body text
      clear imessage.
      refresh imessage.
      imessage = 'Please find attached excel file'.
      append imessage.
    Send file by email as .xls spreadsheet
      perform send_email_with_xls tables imessage
                                          iattach
                                    using p_email
                                          'Example Excel Attachment'
                                          'XLS'
                                          'TestFileName'
                                          'CompanyCodes'.
        if sy-subrc = 0.
         message i000(zsai).
        endif.
         Form  BUILD_XLS_DATA
    form build_xls_data .
    constants: con_cret(2) type C value '0D',  "OK for non Unicode
                con_tab(2) type C value '09'.   "OK for non Unicode
    *If you have Unicode check active in program attributes then 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 'BUKRS' 'BUTXT'
             into iattach separated by con_tab.
      concatenate con_cret iattach into iattach.
      append  iattach.
      loop at it001.
        concatenate it001-bukrs it001-butxt
               into iattach separated by con_tab.
        concatenate con_cret iattach into iattach.
       iattach = iattach(30).
        append  iattach.
      endloop.
    endform.
         Form  SEND_EMAIL_WITH_XLS
    Send file by email as .xls spreadsheet
    perform send_email_with_xls tables imessage
                                         iattach
                                   using p_email
                                         'Example Excel Attachment'
                                         'XLS'
                                         'TestFileName'
                                         'CompanyCodes'.
    form send_email_with_xls tables pit_message
                                              pit_attach
                                        using p_email
                                              p_mtitle
                                              p_format
                                              p_filename
                                              p_attdescription.
      data: xdocdata like sodocchgi1,
            xcnt type i.
    Fill the document data.
      xdocdata-doc_size = 1.
    Populate the subject/generic message attributes
      xdocdata-obj_langu = sy-langu.
      xdocdata-obj_name  = 'SAPRPT'.
      xdocdata-obj_descr = p_mtitle .
    Fill the document data and get size of attachment
      clear xdocdata.
      read table iattach index xcnt.
      xdocdata-doc_size =
         ( xcnt - 1 ) * 255 + strlen( iattach ).
      xdocdata-obj_langu  = sy-langu.
      xdocdata-obj_name   = 'SAPRPT'.
      xdocdata-obj_descr  = p_mtitle.
      clear iattachment.
      refresh iattachment.
      iattachment[] = pit_attach[].
    Describe the body of the message
      clear ipacking_list.
      refresh ipacking_list.
      ipacking_list-transf_bin = space.
      ipacking_list-head_start = 1.
      ipacking_list-head_num = 0.
      ipacking_list-body_start = 1.
      describe table imessage lines ipacking_list-body_num.
      ipacking_list-doc_type = 'RAW'.
      append ipacking_list.
    Create attachment notification
      ipacking_list-transf_bin = 'X'.
      ipacking_list-head_start = 1.
      ipacking_list-head_num   = 1.
      ipacking_list-body_start = 1.
      describe table iattachment lines ipacking_list-body_num.
      ipacking_list-doc_type   =  p_format.
      ipacking_list-obj_descr  =  p_attdescription.
      ipacking_list-obj_name   =  p_filename.
      ipacking_list-doc_size   =  ipacking_list-body_num * 255.
      append ipacking_list.
    Add the recipients email address
      clear ireceivers.  refresh ireceivers.
      ireceivers-receiver = p_email.
      ireceivers-rec_type = 'U'.
      ireceivers-com_type = 'INT'.
      ireceivers-notif_del = 'X'.
      ireceivers-notif_ndel = 'X'.
      append ireceivers.
      call function 'SO_DOCUMENT_SEND_API1'
           exporting
                document_data              = xdocdata
                put_in_outbox              = 'X'
                commit_work                = 'X'
           tables
                packing_list               = ipacking_list
                contents_bin               = iattachment
                contents_txt               = imessage
                receivers                  = ireceivers
           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.
       SUBMIT rsconn01 WITH mode EQ 'INT' AND RETURN.
        COMMIT WORK .
      ENDIF.
    endform.

  • Send An Internal Table Via Excel File As An Attachment of E-mail

    Hi,
    I've sent my internal table via Excel file as an attachment of email but all records of internal table are in a row of sended excel file.
    How can i send an internal table via excel file , records of internal table for each rows of excel file,as an attachment of email correctly?
    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     "   t_packing_list-doc_type   =  'XLS'.
                contents_bin               = pit_attach " this is a normal internal table.
                contents_txt               = pit_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.

    Hi,
    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.
          LOOP AT T_FINAL INTO WA_T_FINAL.
            CONCATENATE WA_T_FINAL-PERNR
                        WA_T_FINAL-NAME
                        WA_T_FINAL-LEVEL
                        WA_T_FINAL-POS
                        WA_T_FINAL-JOB
                        WA_T_FINAL-SECTION
                        WA_T_FINAL-DEPT
                        WA_T_FINAL-GROUP
                        WA_T_FINAL-EX_HEAD
                        WA_T_FINAL-SUPID
                        WA_T_FINAL-SUPNM
                        WA_T_FINAL-FHRNM
                        WA_T_FINAL-VACID
                        WA_T_FINAL-VAC_SECTION
                        WA_T_FINAL-VAC_DEPT
                        WA_T_FINAL-VAC_GROUP
                        WA_T_FINAL-VAC_EX_HEAD
                        WA_T_FINAL-VAC_FHRNM
            INTO T_FINAL3 SEPARATED BY CON_TAB.
            CONCATENATE CON_CRET T_FINAL3 INTO T_FINAL3.
            APPEND T_FINAL3.
          ENDLOOP.
    *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 = 'REPORT'.
      W_DOC_DATA-OBJ_DESCR = LD_MTITLE . "mail description
      W_DOC_DATA-SENSITIVTY = 'F'.
    *Fill the document data and get size of attachment
      CLEAR W_DOC_DATA.
      READ TABLE T_FINAL1 INDEX W_CNT.
      W_DOC_DATA-DOC_SIZE =
      ( W_CNT - 1 ) * 255 + STRLEN( T_FINAL1 ).
      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[] = PT_FINAL1[].
    *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 1st 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 = 'Application 1'.
      T_PACKING_LIST-OBJ_NAME = 'Application 1'.
      T_PACKING_LIST-DOC_SIZE = T_PACKING_LIST-BODY_NUM * 255.
      APPEND T_PACKING_LIST.
      CLEAR 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.
    Edited by: Rahul Ghosh on Apr 6, 2009 6:42 AM

  • How to save data in New Excel Sheet on each time run the VI?

    Hello everyone 
    I am doing my dissertation. In that i have to store the data of load cell in the excel sheet. I have done that.
    Here i have attach the vi , template in which want to save data named My , and output when complete the rn of vi named My Report.
    Now the problem is once i have run the vi , my report is generated but second time when i run the vi the new my report sheet is not generated. and the second problem is i am getting out put as 511, 0,  2.49.  
    I want the when ever i run the vi every time the new excel sheet should be generated and saved with date, time and my report tag. ex. My Report 20/11/13 12:00
    And i want the output 511,2.49,...dont want this 0.
    please hepl me out its urgent
    Attachments:
    COM TO EXCEL WITH EXCEL TOOLKIT.vi ‏44 KB
    MY.xlsx ‏12 KB
    My_Report 1.xlsx ‏12 KB

    You just need to change the settings. Whenever it will write to excel it will display the save as option.
    Then user will confirm the same
    In the excel dispose report.vi passsave change and close report boolean input as TRUE and see
    Kudos are always welcome if you got solution to some extent.
    I need my difficulties because they are necessary to enjoy my success.
    --Ranjeet

  • Problem in Attachment of the Mail

    Hi, I want to send the data in Internal Table as a text attachment to the SAP User Inbox. Problem I am facing is that, the records should go Line by Line i.e. each record should start from a new line but problem I am having is that, the next record starts in the same line where previous record has ended.
    E.g. records should appear like this in file :
    1. AAA XXX YYY ZZZ
    2. XXX YYY ZZZ AAA
    rather it is appearing like :
    1. AAA XXX YYY ZZZ2. XXX YYY ZZZ AAA
    I am giving the Code here to generate attachment and Mail I have used. Please help.
    Data Declaration
    data : begin of itab occurs 0,
             ws_line(600) type c,
           end of itab.
    DATA : file_name TYPE string.
    data : path like PCFILE-PATH.
    data : extension(5) type c.
    data : name(100) type c.
    DATA : receiver TYPE somlreci1-receiver VALUE 'AHUJR0'.
    DATA : BEGIN OF itab_str,
               text(290) TYPE c,
           END OF itab_str.
    DATA: docdata LIKE sodocchgi1,
          objpack LIKE sopcklsti1  OCCURS 0 WITH HEADER LINE,
          objhead LIKE solisti1    OCCURS 0 WITH HEADER LINE,
          objtxt  LIKE solisti1    OCCURS 0 WITH HEADER LINE,
          objbin  LIKE itab_str    OCCURS 0 WITH HEADER LINE,
          objhex  LIKE solix       OCCURS 0 WITH HEADER LINE,
          reclist LIKE somlreci1   OCCURS 0 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.
    Function Called to Prepare & send mail
    PERFORM ml_addrecp USING receiver 'B'.     "receiver contains SAP User Id
    PERFORM doconv TABLES itab objbin.          "itab is the table containing Data
    PERFORM ml_prepare USING 'X' 'txt' grn_file.  "grn_file is the name of attachment file
    PERFORM ml_dosend.
    Form ml_addrecp
    FORM ml_addrecp USING preceiver prec_type.
    CLEAR reclist.
    reclist-receiver = preceiver.
    reclist-rec_type = prec_type.
    APPEND reclist.
    ENDFORM. "ml_addrecp
    Form doconv
    FORM doconv TABLES mypdf STRUCTURE itab_str
                       outbin STRUCTURE itab_str.
    Loop And Put Data
          LOOP AT mypdf.
              outbin = mypdf.
              APPEND outbin.
             CLEAR: outbin.
          ENDLOOP.
    ENDFORM. "doconv
    Form ml_prepare
    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.
    ENDIF.
    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.
    ENDFORM. "ml_prepare
    Form ml_dosend.
    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
        TABLES
          packing_list = objpack
          object_header = objhead
          contents_bin = objbin
          contents_txt = objtxt
          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_dosend

    Hi Ravi,
    I also had the same problem, the solution to this is....  Instead of giving the TXT type to the attachment give as 'RAW' it will work...  it is working for me... note the place for the comment CHANGE I HAVE DONE in the code given by you...
    objpack-doc_type = 'RAW'.  '' for the attachment instead of TXT...
    Eg...
    Packing Info Attachment
    *att_type = whatatt_type..                          '" CHANGE I HAVE DONE
    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.  " CHANGE I HAVE DONE
    objpack-doc_type = 'RAW'.      " CHANGE I HAVE DONE
    objpack-obj_name = 'ATTACHMENT'.
    objpack-obj_descr = whatname.
    APPEND objpack.
    ENDFORM. "ml_prepare

  • Reading excel  sheet from out side of the server though sql developer.

    Hi ALL,
    Is it possible to read the excel sheet from the out side of the oracle server.
    If it possible please send me the sample code.

    Duplicate thread.
    Reading excel  sheet from local system though sql developer
    Also a FAQ
    SQL and PL/SQL FAQ

  • I converted a PDF to an excel sheet, but can't sort the data because of not all the merged data are in the same cell?  What do I do?

    I do a sort a converted PDF to an excel spreadsheet?  The merged fields aren't the same...

    Sorry, I don't understand anything.  What means "merged data" and "merged fields"?
    Can you perhaps provide a screenshot of the original PDF, and the resulting Excel sheet?  See https://forums.adobe.com/thread/1070933

  • Create pdf attachment to the mail

    Hi folks,
    My requirement is to attach pdf document to the mail step in workflow programatically and document is on presentation server.
         i have tried with SOFM object type, but it is asking for document number , but i could not  provide it because it is not in SAP system.
       how to acheive this.
    Thanks, 
    janakiram.

    try this  copy and paste is and make changes as required
    Enjoy.............
    To create pdf from internal table.
    Two steps
    1. get spool no.
    2. create pdf.
    1. get spool no.
    SELECT *
      FROM zwftrack
      INTO TABLE it_zwftrack
    WHERE wf_id = p_wf_id
       AND action = 'FYA'.
      CALL FUNCTION 'GET_PRINT_PARAMETERS'
        EXPORTING destination            = 'LP01'               " 'LT50'
                  copies                 =  1
                  list_name              = g_rq2name
                  list_text              = 'COMM-PDF NEW-PAGE PRINT ON'
                  immediately            = ' '
                  release                = ' '
                  new_list_id            = 'X'
                  expiration             = g_days
                  line_size              = g_ln_size              " 255 ZTG12
                  line_count             = g_ln_count             " 65 ZTG12
                  layout                 = g_layout " 'X_PAPER'ZTG12
                 SAP_COVER_PAGE         = 'X'
                 RECEIVER               = 'SAP*'
                 DEPARTMENT             = 'System'
                 SAP_OBJECT             = 'RS'
                 AR_OBJECT              = 'TEST'
                 ARCHIVE_ID             = 'XX'
                 ARCHIVE_INFO           = 'III'
                 ARCHIVE_TEXT           = 'Description'
                  no_dialog              = 'X'
        IMPORTING out_parameters         = g_params
                  out_archive_parameters = g_arparams
                  valid                  = g_valid.
    "end of get
      NEW-PAGE PRINT ON
                        NEW-SECTION
                        NO-TITLE
                        PARAMETERS g_params
                        ARCHIVE PARAMETERS g_arparams
                  NO DIALOG.
    ***add at top of comments list
    WRITE:/ 'Contract Analysis Worksheet', 150 'Current Data ( ', l_date, ' ', l_time, ' )'.
    WRITE:/150 'Run # :', wa_zzbedsheet-bdshnum.
    WRITE:/ 'Project ID      :',g_object_no.
    WRITE:/ 'Project         :',g_psr_desc.
    WRITE:/ 'Profit Center   :',g_prctr.
    WRITE:/ 'Project Manager :',g_final_abb_contact.
    WRITE:/ 'RA key          :',g_abgsl.
    WRITE:/ 'Customer        :',l_cust.
    WRITE:/ 'Project Start   :',l_proj_start.
    SKIP 3.
    SORT it_zwftrack BY approver_level.
      LOOP AT it_zwftrack INTO wa_zwftrack.
        AT FIRST.
    WRITE:/ 'Approvers Comments:'.
    SKIP 1.
    WRITE:/1 'Role', 35 'Approved By', 50 'Signature', 75 'Comments'.
    ULINE.
    ENDAT.
        IF wa_zwftrack IS INITIAL.
          SKIP.
        ELSE.
    PERFORM f_get_name USING    wa_zwftrack-approved_by
                       CHANGING g_final_abb_contact.
          WRITE :/ wa_zwftrack-role UNDER 'Role',
                   g_final_abb_contact UNDER 'Approved By',
                   wa_zwftrack-signature UNDER 'Signature',
                   wa_zwftrack-comments UNDER 'Comments'.
        ENDIF.
        CLEAR: g_final_abb_contact.
    insert page break
        IF sy-tabix = w_lines  .
          NEW-PAGE .
        w_lines = 2 * w_lines.
        ENDIF.
      ENDLOOP.
        NEW-PAGE PRINT OFF .
    CLEAR w_tsp01.
    SELECT SINGLE *
      FROM tsp01
      INTO w_tsp01
    WHERE rqowner = sy-uname
       AND rq2name = g_rq2name.        "'COMM-PDF' .
    g_spool_comm = w_tsp01-rqident.
    2. create pdf
        CLEAR g_lines .
        REFRESH it_tab1 .
    ****get comments page from spool
        CALL FUNCTION 'RSPO_RETURN_ABAP_SPOOLJOB'
          EXPORTING
            rqident              = g_spool_comm                      "spool1
          TABLES
            buffer               = it_tab1
          EXCEPTIONS
            no_such_job          = 1
            job_contains_no_data = 2
            selection_empty      = 3
            no_permission        = 4
            can_not_access       = 5
            read_error           = 6
            OTHERS               = 8.
        IF sy-subrc = 0.
        ENDIF.
    to record line no  for page break .
        DESCRIBE TABLE it_tab1 LINES g_lines.
        MOVE g_lines TO wa_eof-line .
        APPEND  wa_eof TO it_eof .
        CLEAR g_lines .
        APPEND LINES OF it_tab1 TO it_tab.
        REFRESH it_tab1 .
    SELECT SINGLE spld INTO w_spld FROM usr01 WHERE bname = sy-uname.
    SHIFT g_wf_id LEFT DELETING LEADING '0'.
    CONCATENATE g_wf_id '-ONEPDF' INTO g_list_name.
    CALL FUNCTION 'GET_PRINT_PARAMETERS'
        EXPORTING destination            = w_spld               " 'LT50'
                  copies                 =  1
                  list_name              = g_list_name
                  list_text              = 'PM-PDF NEW-PAGE PRINT ON'
                  immediately            = ' '
                  release                = ' '
                  new_list_id            = 'X'
                  expiration             = g_days
                  line_size              = g_ln_size              " 255 ZTG12
                  line_count             = g_ln_count             " 65 ZTG12
                  layout                 = g_layout " 'X_PAPER'ZTG12
                 SAP_COVER_PAGE         = 'X'
                 RECEIVER               = 'SAP*'
                 DEPARTMENT             = 'System'
                 SAP_OBJECT             = 'RS'
                 AR_OBJECT              = 'TEST'
                 ARCHIVE_ID             = 'XX'
                 ARCHIVE_INFO           = 'III'
                 ARCHIVE_TEXT           = 'Description'
                  no_dialog              = 'X'
        IMPORTING out_parameters         = g_params
                  out_archive_parameters = g_arparams
                  valid                  = g_valid.
      NEW-PAGE PRINT ON
                      NEW-SECTION
                      NO-TITLE
                      PARAMETERS g_params
                      ARCHIVE PARAMETERS g_arparams
               NO DIALOG.
      w_idx =  1 . " for reading EOF line no .
      w_tabix  = 0  .
      READ TABLE it_eof INTO wa_eof INDEX w_idx .
      MOVE  wa_eof-line TO g_lines .
      w_lines = w_tabix + g_lines .
      DATA: w_linestr LIKE sy-tabix .                           "#EC NEEDED
      LOOP AT it_tab INTO wa_tab.
        IF wa_tab-line CP   'Current Budget'  .
          w_linestr  =  sy-tabix .
        ENDIF .
        IF wa_tab IS INITIAL OR wa_tab-line CA '?' .        " ZTG15
          SKIP  .                                               " ZTG15
        ELSE .   " ZTXX
          WRITE /  wa_tab  .
        ENDIF .                                                 " ZTG15
    insert page break
        IF sy-tabix = w_lines  .
          NEW-PAGE .
          w_idx = w_idx + 1 .
          w_tabix =  sy-tabix + w_tabix .
          READ TABLE it_eof INTO wa_eof INDEX w_idx .
          MOVE  wa_eof-line TO g_lines .
          w_lines = w_tabix + g_lines .
          CLEAR: w_tabix.
        ENDIF .
      ENDLOOP .
      NEW-PAGE PRINT OFF .
      CLEAR w_tsp01.
    SELECT * INTO TABLE t_tsp01 FROM tsp01
      WHERE rqowner = sy-uname
      AND rq2name = g_list_name .
    IF sy-subrc = 0  .
       SORT t_tsp01 BY rqcretime DESCENDING . "RBE24 rqident DESCENDING .
    ENDIF .
    READ TABLE t_tsp01 INTO W_TSP01 INDEX 1 .
    CLEAR w_tsp01.
    SELECT SINGLE *
      FROM tsp01
      INTO w_tsp01
    WHERE rqowner = sy-uname
       AND rq2name = g_list_name.        "'COMM-PDF' .
      WHILE  g_numbytes  = 0 .
        CALL FUNCTION 'CONVERT_ABAPSPOOLJOB_2_PDF'
            EXPORTING
              src_spoolid                    = w_tsp01-rqident  "spoolno
              no_dialog                      = ' '
          DST_DEVICE                     =
          PDF_DESTINATION                =
            IMPORTING
              pdf_bytecount                  = g_numbytes
              pdf_spoolid                    = g_pdfspoolid
          LIST_PAGECOUNT                 =
              btc_jobname                    = g_jobname
              btc_jobcount                   = g_jobcount
            TABLES
              pdf                            = it_pdf
            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.
      ENDWHILE.
    **DATA : DATA_TAB TYPE TABLE.
      CALL FUNCTION 'GUI_DOWNLOAD'
        EXPORTING
         bin_filesize                    = g_numbytes
          filename                        = g_lv_file
         filetype                        = 'BIN'
       IMPORTING
         filelength                      = g_numbytes
        TABLES
          data_tab                        = it_pdf
      FIELDNAMES                      =
       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.
    report ZTEST12345678.
    tables:
    tsp01.
    *STRUCTURES
    parameters:
    p_repid like sy-repid, " Report to execute
    p_linsz like sy-linsz default 255, " Line size
    p_paart like sy-paart default 'X_65_132'. " Paper Format
    data:
    mstr_print_parms like pri_params,
    mc_valid(1) type c,
    mi_bytecount type i,
    mi_length type i,
    mi_rqident like tsp01-rqident.
    *INTERNAL TABLES
    data:
    mtab_pdf like tline occurs 0 with header line,
    mc_filename TYPE string.
    *----Data for Mail
    DATA: OBJPACK LIKE SOPCKLSTI1 OCCURS 2 WITH HEADER LINE.
    DATA: OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE.
    DATA: OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE.
    DATA: RECLIST LIKE SOMLRECI1 OCCURS 5 WITH HEADER LINE.
    DATA: DOC_CHNG LIKE SODOCCHGI1.
    DATA: TAB_LINES LIKE SY-TABIX.
    DATA: V_MAILID(241) TYPE C .
    DATA: BEGIN OF DATA_TAB OCCURS 20,
    LINE(255),
    END OF DATA_TAB.
    start-of-selection.
    concatenate 'c:\abap\'
    p_repid
    '.pdf'
    into mc_filename.
    *Setup the Print Parmaters
    call function 'GET_PRINT_PARAMETERS'
    exporting
    authority = space
    copies = '1'
    cover_page = space
    data_set = space
    department = space
    destination = space
    expiration = '1'
    immediately = space
    *in_archive_parameters = space
    *in_parameters = space
    layout = space
    mode = space
    new_list_id = 'X'
    no_dialog = 'X'
    user = sy-uname
    importing
    out_parameters = mstr_print_parms
    valid = mc_valid
    exceptions
    archive_info_not_found = 1
    invalid_print_params = 2
    invalid_archive_params = 3
    others = 4.
    *Make sure that a printer destination has been set up
    *If this is not done the PDF function module ABENDS
    if mstr_print_parms-pdest = space.
    mstr_print_parms-pdest = 'LP01'.
    endif.
    *Explicitly set line width, and output format so that
    *the PDF conversion comes out OK
    mstr_print_parms-linsz = p_linsz.
    mstr_print_parms-paart = p_paart.
    submit (p_repid) to sap-spool without spool dynpro
    spool parameters mstr_print_parms
    via selection-screen
    and return.
    CALL FUNCTION 'ENQUE_SLEEP'
    EXPORTING
    seconds = 2.
    *Find out what the spool number is that was just created
    P_REPID = SY-REPID.
    perform get_spool_number using p_repid sy-uname
    changing mi_rqident.
    *Convert Spool to PDF
    call function 'CONVERT_ABAPSPOOLJOB_2_PDF'
    exporting
    src_spoolid = mi_rqident
    no_dialog = space
    dst_device = mstr_print_parms-pdest
    importing
    pdf_bytecount = mi_bytecount
    tables
    pdf = mtab_pdf
    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.
    perform create_mail_data.
    PERFORM SEND_MAIL.
    *FORM get_spool_number
    *Get the most recent spool created by user/report *
    *--> F_REPID *
    *--> F_UNAME *
    *--> F_RQIDENT *
    form get_spool_number using f_repid
    f_uname changing f_rqident.
    data: lc_rq2name like tsp01-rq2name.
    concatenate f_repid+0(8)
    f_uname+0(3)
    into lc_rq2name separated by '_'.
    concatenate f_repid+0(9)
    f_uname+0(3)
    into lc_rq2name.
    select * from tsp01 where rq2name = lc_rq2name
    order by rqcretime descending.
    f_rqident = tsp01-rqident.
    exit.
    endselect.
    if sy-subrc ne 0.
    clear f_rqident.
    endif.
    endform." get_spool_number
    **& Form create_mail_data
    form create_mail_data.
    *Creation of the document to be sent
    DOC_CHNG-OBJ_NAME = 'TEST MAIL ATTACHMENTS'.
    DOC_CHNG-OBJ_DESCR = 'Test for PDF'.
    OBJTXT = 'Contents of mail'.
    APPEND OBJTXT.
    OBJTXT = 'PDF'.
    APPEND OBJTXT.
    OBJTXT = 'PDF'.
    APPEND OBJTXT.
    DESCRIBE TABLE OBJTXT LINES TAB_LINES.
    READ TABLE OBJTXT INDEX TAB_LINES.
    DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
    *Creation of the entry for the compressed document
    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.
    *-DOWNLOADING AND AGAIN UPLOADINGIN BIN FORMAT TO TRANSFER TO OBJBIN
    *MC_FILENAME = 'c:\test.doc' .
    *--pdf--
    *MC_FILENAME = 'c:\test.pdf'.
    CALL FUNCTION 'GUI_DOWNLOAD'
      EXPORTING
       BIN_FILESIZE                    = MI_BYTECOUNT
        filename                        = MC_FILENAME
       FILETYPE                        = 'BIN'
      APPEND                          = ' '
      WRITE_FIELD_SEPARATOR           = ' '
      HEADER                          = '00'
      TRUNC_TRAILING_BLANKS           = ' '
      WRITE_LF                        = 'X'
      COL_SELECT                      = ' '
      COL_SELECT_MASK                 = ' '
      DAT_MODE                        = ' '
      CONFIRM_OVERWRITE               = ' '
      NO_AUTH_CHECK                   = ' '
      CODEPAGE                        = ' '
      IGNORE_CERR                     = ABAP_TRUE
      REPLACEMENT                     = '#'
      WRITE_BOM                       = ' '
      TRUNC_TRAILING_BLANKS_EOL       = 'X'
      WK1_N_FORMAT                    = ' '
      WK1_N_SIZE                      = ' '
      WK1_T_FORMAT                    = ' '
      WK1_T_SIZE                      = ' '
      WRITE_LF_AFTER_LAST_LINE        = ABAP_TRUE
      SHOW_TRANSFER_STATUS            = ABAP_TRUE
    IMPORTING
      FILELENGTH                      =
      tables
        data_tab                        = MTAB_PDF[]
    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 = MI_BYTECOUNT
    *FILENAME = MC_FILENAME
    *FILETYPE = 'BIN'
    *TABLES
    *DATA_TAB = MTAB_PDF
    *EXCEPTIONS
    *FILE_OPEN_ERROR = 1
    *FILE_WRITE_ERROR = 2
    *INVALID_FILESIZE = 3
    *INVALID_TYPE = 4
    *NO_BATCH = 5
    *UNKNOWN_ERROR = 6
    *INVALID_TABLE_WIDTH = 7
    *GUI_REFUSE_FILETRANSFER = 8
    *CUSTOMER_ERROR = 9
    *OTHERS = 10.
    CALL FUNCTION 'GUI_UPLOAD'
      EXPORTING
        filename                      = MC_FILENAME
       FILETYPE                      = 'BIN'
      HAS_FIELD_SEPARATOR           = ' '
      HEADER_LENGTH                 = 0
      READ_BY_LINE                  = 'X'
      DAT_MODE                      = ' '
      CODEPAGE                      = ' '
      IGNORE_CERR                   = ABAP_TRUE
      REPLACEMENT                   = '#'
      CHECK_BOM                     = ' '
      VIRUS_SCAN_PROFILE            =
      NO_AUTH_CHECK                 = ' '
    IMPORTING
      FILELENGTH                    =
      HEADER                        =
      tables
        data_tab                      = OBJBIN
    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_UPLOAD'
    *EXPORTING
    *FILENAME = MC_FILENAME
    *FILETYPE = 'BIN'
    *TABLES
    *DATA_TAB = OBJBIN.
    *--uncommnet this for pdf--
    DESCRIBE TABLE OBJBIN LINES TAB_LINES.
    OBJHEAD = 'TEST.pdf'. APPEND OBJHEAD.
    *Creation of the entry for the compressed attachment
    OBJPACK-TRANSF_BIN = 'X'.
    OBJPACK-HEAD_START = 1.
    OBJPACK-HEAD_NUM = 1.
    OBJPACK-BODY_START = 1.
    OBJPACK-BODY_NUM = TAB_LINES.
    OBJPACK-DOC_TYPE = 'PDF'.
    OBJPACK-OBJ_NAME = 'Testing PDF Attachment'.
    OBJPACK-OBJ_DESCR = 'Customes Ageing report PDF Output Attachment'.
    OBJPACK-DOC_SIZE = TAB_LINES * 255.
    APPEND OBJPACK.
    CLEAR V_MAILID.
    V_MAILID = <mail id>.
    RECLIST-RECEIVER = V_MAILID.
    RECLIST-REC_TYPE = 'U'.  "B for SAP Inbox
    APPEND RECLIST.
    endform. " create_mail_data
    **& Form SEND_MAIL
    form SEND_MAIL.
    Sending the document
    CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
    DOCUMENT_DATA = DOC_CHNG
    PUT_IN_OUTBOX = 'X'
    commit_work = 'X'
    TABLES
    PACKING_LIST = OBJPACK
    OBJECT_HEADER = OBJHEAD
    CONTENTS_BIN = OBJBIN
    CONTENTS_TXT = OBJTXT
    RECEIVERS = RECLIST
    EXCEPTIONS
    TOO_MANY_RECEIVERS = 1
    DOCUMENT_NOT_SENT = 2
    OPERATION_NO_AUTHORIZATION = 4
    OTHERS = 99.
    *EXCEPTION HANDLING
    CASE SY-SUBRC.
    WHEN 0.
    WRITE: / 'Mail sent with attachment'.
    WHEN 1.
    WRITE: / 'No authorization for sending to the specified number',
    'of recipients'.
    WHEN 2.
    WRITE: / 'Document could not be sent to any recipient'.
    WHEN 4.
    WRITE: / 'No send authorization'.
    WHEN OTHERS.
    WRITE: / 'Error occurred while sending'.
    ENDCASE.
    endform. " SEND_MAIL

  • Problems with txt attachment in the mail

    Hi,
    I noticed a big problem for the mail in mac os x. Every time I received my txt format data file in attachment with email, it automatically displayed at the end of my email in the Mail instead of remaining as a txt attachment file ready for download. How can I set it to stay as an attachment instead of being forced to show up as plain text in the end of my received email? Thanks.

    Hi,
    I noticed a big problem for the mail in mac os x. Every time I received my txt format data file in attachment with email, it automatically displayed at the end of my email in the Mail instead of remaining as a txt attachment file ready for download. How can I set it to stay as an attachment instead of being forced to show up as plain text in the end of my received email? Thanks.

  • Picking up the attachment from the Mail...

    Hi to All,
    I am trying one scenario in which i want to pick the Mail from mail server which contains an attachment in XML format and i want to Access this Attachment (i dont have to do anything with the main Body of mail)  and want to put the Data of the attachment in RFC.
    Can body please help me.
    Its very urgent.
    Thanks
    Regards
    Vikas

    hi vikas,
    u can use the following links to develop ur scenario.
    /people/sravya.talanki2/blog/2005/08/18/triggering-e-mails-to-shared-folders-of-sap-is-u - Triggering Email from folder
    /people/prasad.ulagappan2/blog/2005/06/07/mail-adapter-scenarios-150-sap-exchange-infrastructure - Mail Adaptor options , mail attatchment
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6d967fbc-0a01-0010-4fb4-91c6d38c5816
    /people/prasad.ulagappan2/blog/2005/06/07/mail-adapter-scenarios-150-sap-exchange-infrastructure
    /people/michal.krawczyk2/blog/2005/11/23/xi-html-e-mails-from-the-receiver-mail-adapter
    https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/1685 [original link is broken] [original link is broken] [original link is broken] [original link is broken]
    regards
    sreeni

Maybe you are looking for

  • SQL Expression Question

    To the forum members In the Crystal Formula Editor, under Print State, there is a function called Previous.  This compares the contents of the current field to the previous one.  Is there a similar function in the SQL Expression Editor.  I'm trying t

  • More than one field in generic data source

    Hi All, We wanted extract Allocation data for the sales order from R/3 to BW. I am not able to find proper data source for it... there are two datasources..we wanted afs specific datasource 2LIS_11_V_ITM  :  Sales-Shipping Allocation Item Data 2LIS_1

  • Header Currency in Shopping Cart

    Hi Gurus, In a shopping cart the header currency always comes from the user attributes no matter what the item currency is . Our requirement is to have the header currency to be same as the item currency when all the items have the same currency. How

  • No images showing in LR2.6

    I am running LR2.6 on a Dell XPS435T 64b W7.  I downloaded LR2.6, and it seemed to work ok for a while.  Now when I open my catalog there are no images, only gray squares.  The correct metatata shows on the side bar, as do the rating stars on each gr

  • New computer to sync iphone to

    My old computer crashed and I have a new one but I don't want to have to lose all my music or ringtones. How do I sync it without losing the information ?