Explained the options like CC, BCC and Attachment in Email.
Program Code: (Angel brackets are removed, pls add it after copy paste)
DATA: lv_subject TYPE so_obj_des VALUE 'Email Subject',
lv_sender TYPE ad_smtpadr VALUE 'noreply@abc.com'.
DATA: it_email_body TYPE bcsy_text,
it_receivers TYPE bcsy_smtpa.
DATA: obj_docu TYPE REF TO cl_document_bcs,
obj_sender TYPE REF TO if_sender_bcs,
obj_sender_request TYPE REF TO cl_bcs,
obj_receivers TYPE REF TO if_recipient_bcs.
it_email_body = VALUE #( ( line = 'Configuration Fails Notification' )
( line = 'Please reach on call people' ) ).
it_receivers = VALUE #( ( 'ganesh@xyz.com' )
( 'abap@xyz.com' )
( 'check@abc.com' ) ).
TRY .
*TRY.
obj_docu = cl_document_bcs=create_document(
EXPORTING
i_type = 'HTM'
i_text = it_email_body
i_subject = lv_subject ).
* Sender
obj_sender = cl_cam_address_bcs=create_internet_address(
EXPORTING
i_address_string = lv_sender ).
* Request
Obj_sender_request = cl_bcs=create_persistent( ).
* Obj_sender_request =
CALL METHOD obj_sender_request-set_sender
EXPORTING
i_sender = obj_sender.
* receiver
LOOP AT it_receivers INTO DATA(wa_receivers).
DATA(lv_index) = sy-tabix.
obj_receivers = cl_cam_address_bcs=create_internet_address(
EXPORTING
i_address_string = wa_receivers )
.
IF lv_index EQ 1.
CALL METHOD obj_sender_request-add_recipient
EXPORTING
i_recipient = obj_receivers
i_express = 'X'.
ELSEIF lv_index EQ 2.
CALL METHOD obj_sender_request-add_recipient
EXPORTING
i_recipient = obj_receivers
* i_express = 'X'
i_copy = 'X'.
ELSEIF lv_index EQ 3.
CALL METHOD obj_sender_request-add_recipient
EXPORTING
i_recipient = obj_receivers
i_express = 'X'
i_blind_copy = 'X'.
ENDIF.
ENDLOOP.
* Attachment
DATA: lv_fname TYPE rs38l_fnam,
lv_binfilesize TYPE so_obj_len,
lv_file TYPE xstring.
DATA: it_otfdata TYPE ssfcrescl,
it_otf TYPE TABLE OF itcoo,
it_lines TYPE TABLE OF tline,
it_binary_tab TYPE solix_tab.
DATA: ls_ctrlop TYPE ssfctrlop,
ls_outopt TYPE ssfcompop.
ls_ctrlop-getotf = 'X'.
ls_ctrlop-no_dialog = 'X'.
ls_ctrlop-preview = space.
"Output Options
ls_outopt-tdnoprev = 'X'.
ls_outopt-tddest = 'LOCL'.
ls_outopt-tdnoprint = 'X'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZJI_SF_WINDOWS'
IMPORTING
fm_name = lv_fname.
CALL FUNCTION lv_fname
EXPORTING
control_parameters = ls_ctrlop
output_options = ls_outopt
IMPORTING
job_output_info = it_otfdata.
it_otf = it_otfdata-otfdata[].
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
format = 'PDF'
IMPORTING
bin_filesize = lv_binfilesize
bin_file = lv_file
TABLES
otf = it_otf[]
lines = it_lines[].
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = lv_file
TABLES
binary_tab = it_binary_tab.
*TRY.
CALL METHOD obj_docu-add_attachment
EXPORTING
i_attachment_type = 'PDF'
i_attachment_subject = 'PO Document'
i_attachment_size = lv_binfilesize
i_att_content_hex = it_binary_tab.
CALL METHOD obj_sender_request-set_document
EXPORTING
i_document = obj_docu.
*TRY.
CALL METHOD obj_sender_request-send
EXPORTING
i_with_error_screen = 'X'
RECEIVING
result = DATA(lv_sent).
COMMIT WORK.
* CATCH cx_send_req_bcs.
*ENDTRY.
CATCH cx_bcs INTO DATA(obj_exception).
ENDTRY.
Негізгі бет Video 2: ABAP For ALL - Email Functionality Part 2
Пікірлер: 33