Send Mail Excel attchment

DATA: lt_mailrecipients  TYPE STANDARD TABLE OF somlrec90 WITH HEADER LINE,
      lt_mailtxt         TYPE STANDARD TABLE OF soli      WITH HEADER LINE,
      lt_attachment      TYPE STANDARD TABLE OF solisti1  WITH HEADER LINE,
      lt_mailsubject     TYPE sodocchgi1,
      lt_packing_list    TYPE STANDARD TABLE OF sopcklsti1 WITH HEADER LINE,
      gv_cnt             TYPE i.

Add Recipients

lt_mailrecipients-rec_type  = 'U'.
lt_mailrecipients-com_type  = 'INT'.
lt_mailrecipients-RECEIVER  = 'someone@erpdb.info'.
APPEND lt_mailrecipients .
CLEAR lt_mailrecipients .

Put in the Mail Contents

lt_mailtxt = 'Hi How are you'.      APPEND lt_mailtxt. CLEAR lt_mailtxt.
lt_mailtxt = 'Here is a test mail'. APPEND lt_mailtxt. CLEAR lt_mailtxt.
lt_mailtxt = 'Thanks'.              APPEND lt_mailtxt. CLEAR lt_mailtxt.

Create the attachment

  DATA: BEGIN OF lt_po_data_cons OCCURS 0,
         ebeln LIKE ekpo-ebeln,
         ebelp LIKE ekpo-ebelp,
        END OF lt_po_data_cons.

  SELECT ebeln ebelp INTO TABLE lt_po_data_cons
  UP TO 10 ROWS
  FROM ekpo. 

  CLASS cl_abap_char_utilities DEFINITION LOAD.
  CONCATENATE 'PO' 'PO Line'
              INTO lt_attachment SEPARATED BY
              cl_abap_char_utilities=>horizontal_tab.
  APPEND lt_attachment. CLEAR lt_attachment.

  LOOP AT lt_po_data_cons.
  CONCATENATE lt_po_data_cons-ebeln lt_po_data_cons-ebelp
              INTO lt_attachment SEPARATED BY
              cl_abap_char_utilities=>horizontal_tab.

  CONCATENATE cl_abap_char_utilities=>newline lt_attachment
              INTO lt_attachment.

  APPEND lt_attachment. CLEAR lt_attachment.
 ENDLOOP.
Pack the mail contents and attachment
 lt_packing_list-transf_bin  = SPACE.
  lt_packing_list-head_start  = 1.
  lt_packing_list-head_num    = 0.
  lt_packing_list-body_start  = 1.
  lt_packing_list-body_num    = LINES( lt_mailtxt ).
  lt_packing_list-doc_type    = 'RAW'.
  APPEND lt_packing_list. CLEAR lt_packing_list.

  lt_packing_list-transf_bin  = 'X'.
  lt_packing_list-head_start  = 1.
  lt_packing_list-head_num    = 1.
  lt_packing_list-body_start  = 1.
  lt_packing_list-body_num    = LINES( lt_attachment ).
  lt_packing_list-doc_type    = 'XLS'. " You can give RAW incase if you want just a txt file.
  lt_packing_list-obj_name    = 'data.xls'.
  lt_packing_list-obj_descr   = 'data.xls'.
  lt_packing_list-doc_size    = lt_packing_list-body_num * 255.
  APPEND lt_packing_list. CLEAR lt_packing_list.

  lt_mailsubject-obj_name     = 'MAILATTCH'.
  lt_mailsubject-obj_langu    = sy-langu.
  lt_mailsubject-obj_descr    = 'You have got mail'.
  lt_mailsubject-sensitivty   = 'F'.
  gv_cnt = LINES( lt_attachment ).
  lt_mailsubject-doc_size     = ( gv_cnt - 1 ) * 255 + STRLEN(
  lt_attachment ).
Finally, send the mail out.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data              = lt_mailsubject
    TABLES
      packing_list               = lt_packing_list
      contents_bin               = lt_attachment
      contents_txt               = lt_mailtxt
      receivers                  = lt_mailrecipients
    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 EQ 0.
    COMMIT WORK.
    SUBMIT rsconn01 WITH MODE = 'INT' AND RETURN.
  ENDIF.

********************************ROHINI KUMAR*********************************
                               Please support my work : sap.rohini988@gmail.com
                               LinkedIn Link  : https://www.linkedin.com/in/rohini-kumar-14647a13a/
********************************************************************************

Comments

Popular posts from this blog

all user exit mv45afzz (implicit user exit )

How to Give Dropdown in alv report in sap abap programming Language

Long Text in input and output field in module pool