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_xml( if_salv_bs_xml=>c_type_xlsx ).
"Get Customer information OR You can get users mail from usr21 and adr6 tables.
select single kunnr, name1, name2
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 kunnr, email, to_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
data: lv_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_des( lv_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 #( xstrlen( lv_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_solix( lv_xstring )
).
"Add document to send request
lo_send_request->set_document( lo_document ).
"Set long subject
lo_send_request->set_message_subject( ip_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
Yorum Gönder