DATA: lo_document TYPE REF TO cl_document_bcs VALUE IS INITIAL,
lo_send_request TYPE REF TO cl_bcs VALUE IS INITIAL,
lo_sender TYPE REF TO if_sender_bcs VALUE IS INITIAL,
lo_recipient TYPE REF TO if_recipient_bcs VALUE IS INITIAL,
lt_message_body TYPE bcsy_text VALUE IS INITIAL,
ls_soli TYPE soli,
li_approver1 TYPE bcsy_text,
lv_subject TYPE so_obj_des,
lv_generic_mail TYPE ad_smtpadr,
lv_mail_subj TYPE so_obj_des,
lv_sent_to_all TYPE os_boolean,
lv_wait TYPE bapiwait,
lv_return TYPE bapiret2.
* MESSAGE BODY AND SUBJECT
lv_mail_subj = 'Business Partner '.
ls_soli-line = 'Dear Partner,'.
APPEND ls_soli TO li_approver1.
CLEAR ls_soli.
ls_soli-line = ''.
APPEND ls_soli TO li_approver1.
CLEAR ls_soli.
ls_soli-line = ''.
APPEND ls_soli TO li_approver1.
CLEAR ls_soli.
ls_soli-line = lv_mail_subj.
APPEND ls_soli TO li_approver1.
CLEAR ls_soli.
APPEND ls_soli TO li_approver1.
CLEAR ls_soli.
ls_soli-line = ''.
APPEND ls_soli TO li_approver1.
ls_soli-line = ''.
APPEND ls_soli TO li_approver1.
CLEAR ls_soli.
ls_soli-line = 'Thank you,'.
APPEND ls_soli TO li_approver1.
CLEAR ls_soli.
CLASS cl_bcs DEFINITION LOAD.
TRY .
lo_send_request = cl_bcs=>create_persistent( ).
CATCH cx_root.
ENDTRY.
lv_subject = lv_mail_subj.
lt_message_body = li_approver1.
TRY .
lo_document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = lt_message_body
i_subject = lv_subject
).
CATCH cx_root.
ENDTRY.
TRY .
lo_send_request->set_document( lo_document ).
CATCH cx_root.
ENDTRY.
*----------------------------------------------------------------------*
** Create and Set Sender
*----------------------------------------------------------------------*
TRY .
lo_sender = cl_sapuser_bcs=>create( sy-uname ).
CATCH cx_root .
ENDTRY.
TRY .
lo_send_request->set_sender( EXPORTING i_sender = lo_sender ).
CATCH cx_root .
ENDTRY.
*----------------------------------------------------------------------*
** Create and Set Recipeint
*----------------------------------------------------------------------*
lv_generic_mail = iv_email_id. "ls_adr6-smtp_addr.
TRY .
lo_recipient = cl_cam_address_bcs=>create_internet_address(
lv_generic_mail ).
CATCH cx_root.
ENDTRY.
TRY .
lo_send_request->add_recipient(
EXPORTING
i_recipient = lo_recipient
i_express = 'X'
i_copy = 'X' ).
CATCH cx_root.
ENDTRY.
*----------------------------------------------------------------------*
**Send mail to all reciepients
*----------------------------------------------------------------------*
TRY .
lo_send_request->send(
EXPORTING
i_with_error_screen = 'X'
RECEIVING
result = lv_sent_to_all ).
CATCH cx_root.
ENDTRY.
*----------------------------------------------------------------------*
** Commit work
*----------------------------------------------------------------------*
lv_wait = 'X'.
CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
EXPORTING
wait = lv_wait
IMPORTING
return = lv_return.