Send Mail ALV Output with Excel Pivot Table

 *&---------------------------------------------------------------------*

*& Include          ZSD_AP_P0009_I005

*&---------------------------------------------------------------------*

class lcl_send_oo_email definition .

  "PUBLIC FINAL CREATE PUBLIC .

  public section.

    class-methods:

      send_email

        importing i_kunnr type kunnr.

 

endclass.

 

class lcl_send_oo_email implementation.

  method send_email.

 

    "Date formating

    data(lv_str_date) = sy-datum+6(2&& '.' && sy-datum+4(2&& '.' && sy-datum(4).

 

    "Get XLSX file

    data(lv_xstring) = go_table->to_xmlif_salv_bs_xml=>c_type_xlsx ).

 

    "Get Customer information OR You can get users mail from usr21 and adr6 tables.

    select single kunnrname1name2

             from kna1

            where kunnr eq @i_kunnr

             into @data(ls_kna1).

 

    data(lv_fname) = | { ls_kna1-name1 } { ls_kna1-name2 } |.

 

    "Get Customer mails

    select distinct kunnremailto_cc

               from zsd_ap_t0051

              where kunnr eq @i_kunnr

               into table @data(lt_mail).



 

*--- Email code starts here

    try.

        "Create send request

        data(lo_send_request) = cl_bcs=>create_persistent( ).

        "Create mail body

        "SOLI_TAB

        data(lt_body) = value bcsy_text(

                          line | { text-901 } | ) ( )               " Değerli İş Ortağımız,

                          line |{ lv_str_date } { text-902 }| ) ( ) " SY-DATUM tarihli dosya mutabakatınız ektedir.

                          line text-903 )                           " İyi çalışmalar.

                          line text-907 )                           " Saygılarımızla.

                        ).

 

        "Set up document object

        datalv_subject type string .

        lv_subject | { lv_fname } { text-904 }-{ sy-datum } |.

 

        data(lo_document) = cl_document_bcs=>create_document(

                              i_type 'RAW' " 'HTM'

                              i_text lt_body "lt_soli TYPE soli_tab

                              i_subject conv so_obj_deslv_subject " ALPER ÇELİK İMALAT İNŞAAT SANAYİ TİCARET A.Ş. Dosya Mutabakatı-SY-DATUM

                           ).

 

        "Add attachment

        lo_document->add_attachment(

            i_attachment_type    'xls'

            i_attachment_size    conv #xstrlenlv_xstring ) )

 

            i_attachment_subject |{ text-905 }_{ sy-datum }_{ sy-uzeit }|         " DosyaMutabakatı_20230414_090000

            i_attachment_header  value #( ( line text-906 ) )                   " Data.xlsx

            i_att_content_hex    cl_bcs_convert=>xstring_to_solixlv_xstring )

         ).

 

        "Add document to send request

        lo_send_request->set_documentlo_document ).

 

        "Set long subject

        lo_send_request->set_message_subjectip_subject lv_subject ).

 

        "Set sender

        lo_send_request->set_sender(

            cl_cam_address_bcs=>create_internet_address(

                i_address_string conv #'no-reply@sapsupport.com' "sender mail

            )

        ).

 

        "Set receivers

        loop at lt_mail assigning field-symbol(<fs_mail>).

          case <fs_mail>-to_cc.

            when '01'.

              lo_send_request->add_recipient(

                  i_recipient cl_cam_address_bcs=>create_internet_address(

                                  i_address_string <fs_mail>-email

                                )

                  i_express   abap_true "TO

              ).

            when '02'.

              lo_send_request->add_recipient(

                  i_recipient cl_cam_address_bcs=>create_internet_address(

                                  i_address_string <fs_mail>-email

                                )

                  i_copy      abap_true "CC

              ).

          endcase.

        endloop.

 

        "Send Email

        data(lv_sent_to_all) = lo_send_request->send( ).

        commit work.

 

      catch cx_send_req_bcs into data(lv_x_req_bsc).

        "Error handling

      catch cx_document_bcs into data(lv_x_doc_bcs).

        "Error handling

      catch cx_address_bcs  into data(lv_x_add_bcs).

        "Error handling

    endtry.

 

  endmethod.

endclass.

Yorumlar

Bu blogdaki popüler yayınlar

Transaction Code assignment for Query created in SQVI - SQVI Raporu Tcode Bağlanması