Skip to Content
author's profile photo Former Member
Former Member

sending file as an attachment in the background

hi all,

i am having one XML file in the application server and i want to send this XML file as an attachment via email in back ground,

can any one help me in this???

Thnaks in advance.

Add a comment
10|10000 characters needed characters exceeded

Assigned Tags

Related questions

4 Answers

  • Best Answer
    author's profile photo Former Member
    Former Member
    Posted on Jan 30, 2008 at 10:01 AM

    Hi,

    Use the function module SO_NEW_DOCUMENT_ATT_SEND_API1

    for sending mail with attachment.

    refer the program RSWNSENDMAIL1 for example.

    Pls reward points if good.

    Regards,

    Renjith Michael.

    Edited by: Renjith Michael on Jan 30, 2008 3:32 PM

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jan 30, 2008 at 10:02 AM

    Hi sudeep,

    check this link...i might of your help..

    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/c2567f2b-0b01-0010-b7b5-977cbf80665d

    pls reward if helps,

    regards.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jan 30, 2008 at 10:20 AM

    1st create spool from ur script / s-form

    then use that spool to convert it to PDF and then download it

    CALL FUNCTION 'RSPO_RETURN_SPOOLJOB'

    EXPORTING

    RQIDENT = GS_OTF_SPOOLS-RQIDENT

    TABLES

    BUFFER = GT_TEMP_TABLE

    EXCEPTIONS

    NO_SUCH_JOB = 1

    JOB_CONTAINS_NO_DATA = 2

    SELECTION_EMPTY = 3

    NO_PERMISSION = 4

    CAN_NOT_ACCESS = 5

    READ_ERROR = 6

    TYPE_NO_MATCH = 7.

    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 'CONVERT_OTF_2_PDF'

    EXPORTING

    USE_OTF_MC_CMD = 'X'

    IMPORTING

    BIN_FILESIZE = SIZE

    TABLES

    OTF = GT_OTF_TABLE

    DOCTAB_ARCHIVE = DOC

    LINES = GT_PDF

    EXCEPTIONS

    ERR_CONV_NOT_POSSIBLE = 1

    ERR_OTF_MC_NOENDMARKER = 2

    OTHERS = 3.

    IF SY-SUBRC <> 0.

    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

    WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

    ENDIF.

    U can also use the standard pgm RSTXPDFT4

    Award points

    Narendra

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jan 30, 2008 at 10:26 AM

    Check if below code can help you as reference:

    PARAMETERS: p_mail TYPE ad_smtpadr OBLIGATORY.
     
    DATA: i_mara TYPE STANDARD TABLE OF mara.  " MARA Entries
    DATA: l_text TYPE char255.  " Text
    DATA: l_lines TYPE i,
          l_size            TYPE           sood-objlen.
    " Size of Attachment
     
     
    * Mail related
    DATA: i_content         TYPE   soli_tab, " Mail content
          i_attach          TYPE   soli_tab. " Attachment
     
    DATA: l_send_request    TYPE REF TO    cl_bcs,
                                                " E-Mail Send Request
          l_document        TYPE REF TO    cl_document_bcs,
                                                " E-Mail Attachment
          l_recipient       TYPE REF TO    if_recipient_bcs,
                                                " Distribution List
          l_sender          TYPE REF TO    if_sender_bcs,
                                                " Address of Sender
          l_uname           TYPE           salrtdrcpt,
                                                " Sender Name(SY-UNAME)
          l_bcs_exception   TYPE REF TO    cx_document_bcs,
                                                " BCS Exception
          l_addr_exception  TYPE REF TO    cx_address_bcs,
                                                " Address Exception
          l_send_exception  TYPE REF TO    cx_send_req_bcs.
    " E-Mail sending Exception
     
    .
     
    *
    *Constants------------------------------------------------------------*
    CONSTANTS: c_tab(1) TYPE c VALUE
                   cl_abap_char_utilities=>horizontal_tab,
                                         " Tab Character
     
               c_cr(1)  TYPE c VALUE cl_abap_char_utilities=>cr_lf,
                                         " Line Feed for End-Of_line
     
               c_ext    TYPE soodk-objtp VALUE 'XLS'. " XLS Extension
     
    START-OF-SELECTION.
     
      SELECT * FROM mara INTO TABLE i_mara UP TO 20 ROWS.
     
    * Preparing body of the Mail
      MOVE 'Mail Body' TO l_text.
      APPEND l_text TO i_content.
     
    * Preparing contents of attachment with Change Log
      PERFORM prepare_attachment.
     
    * Creates persistent send request
      TRY.
          l_send_request = cl_bcs=>create_persistent( ).
     
    * Creating Document
          l_document = cl_document_bcs=>create_document(
                                        i_type  = 'RAW'
                                        i_text  = i_content[]
                                        i_subject = 'Material Details' ).
     
          DESCRIBE TABLE i_mara LINES l_lines.
    * Size to multiplied by 2 for UNICODE enabled systems
          l_size = l_lines * 2 * 255.
     
    * Adding Attachment
          CALL METHOD l_document->add_attachment
            EXPORTING
              i_attachment_type    = c_ext
              i_attachment_size    = l_size
              i_attachment_subject = 'Material Details'
              i_att_content_text   = i_attach[].
     
    * Add document to send request
          CALL METHOD l_send_request->set_document( l_document ).
     
    * Get Sender Object
          l_uname = sy-uname.
     
          l_sender = cl_sapuser_bcs=>create( l_uname ).
     
          CALL METHOD l_send_request->set_sender
            EXPORTING
              i_sender = l_sender.
     
    * E-Mail
          TRANSLATE p_mail TO LOWER CASE.
     
        l_recipient = cl_cam_address_bcs=>create_internet_address( p_mail )
    .
     
          CALL METHOD l_send_request->add_recipient
            EXPORTING
              i_recipient  = l_recipient
              i_express    = 'U'
              i_copy       = ' '
              i_blind_copy = ' '
              i_no_forward = ' '.
     
     
    *Trigger E-Mail immediately
          l_send_request->set_send_immediately( 'X' ).
     
          CALL METHOD l_send_request->send( ).
     
          COMMIT WORK.
     
        CATCH cx_document_bcs INTO l_bcs_exception.
     
        CATCH cx_send_req_bcs INTO l_send_exception.
     
        CATCH cx_address_bcs  INTO l_addr_exception.
     
      ENDTRY.
     
     
    *&---------------------------------------------------------------------
    *
    *&      Form  PREPARE_ATTACHMENT
    *&---------------------------------------------------------------------
    *
    FORM prepare_attachment .
     
      FIELD-SYMBOLS: <lfs_table>,    " Internal table structure
                     <lfs_con>.      " Field Content
      DATA: l_text TYPE char1024.     " Text content for mail attachment
      DATA: l_con(50) TYPE c.        " Field Content in character format
     
    * Columns to be tab delimeted
      LOOP AT i_mara ASSIGNING <lfs_table>.
        DO.
          ASSIGN COMPONENT sy-index OF STRUCTURE <lfs_table>
                 TO <lfs_con>.
          IF sy-subrc NE 0.
            CONCATENATE c_cr l_text INTO l_text.
            APPEND l_text TO i_attach.
            EXIT.
          ELSE.
            CLEAR: l_con.
            MOVE <lfs_con> TO l_con.
            CONDENSE l_con.
            IF sy-index = 1.
              CLEAR: l_text.
              MOVE l_con TO l_text.
            ELSE.
              CONCATENATE l_text l_con INTO l_text
                 SEPARATED BY c_tab.
            ENDIF.
          ENDIF.
        ENDDO.
      ENDLOOP.
     
    ENDFORM.                    " PREPARE_ATTACHMENT
    

    Regards

    Eswar

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.