0% found this document useful (0 votes)
47 views2 pages

Mail Code

This method calls the system method to send an email notification for a manufacturing part change request. It retrieves information about the change request like the requestor's name and email, assembles the email body with details from the request, and sends the email using the BCS message service. Any errors are caught and handled.

Uploaded by

sachinkumarpn01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
47 views2 pages

Mail Code

This method calls the system method to send an email notification for a manufacturing part change request. It retrieves information about the change request like the requestor's name and email, assembles the email body with details from the request, and sends the email using the BCS message service. Any errors are caught and handled.

Uploaded by

sachinkumarpn01
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

METHOD if_usmd_ssw_syst_method_caller~call_system_method.

DATA M.
WHILE M <> 1.
ENDWHILE.
DATA: crequest_api TYPE REF TO if_usmd_crequest_api,
et_messages TYPE usmd_t_message,
es_crequest TYPE usmd_s_crequest,
lv_crequest TYPE usmd_crequest_type,
et_note TYPE usmd_t_crequest_note,
wa_note TYPE usmd_s_crequest_note,
lt_return TYPE bapirettab,
ls_user_data TYPE bapiaddr3,
lv_requestor TYPE xubname,
lv_requestor_email TYPE ad_smtpadr,
lv_name_requestor TYPE char80,
ls_user_agent TYPE usmd_s_user_agent,
lv_string TYPE string,
lv_string1 TYPE string,
lv_subject TYPE string,
lv_body TYPE string,
lt_lines TYPE tline_tab,
lv_mail_address TYPE string,
lo_message TYPE REF TO cl_bcs_message,
lx_bcs_send TYPE REF TO cx_bcs_send,
ls_context_tab TYPE usmd_s_generic_context,
lv_notes TYPE usmd_note.
*
CONSTANTS: lv_newline TYPE c VALUE cl_abap_char_utilities=>newline,
c_mail_subject TYPE char80 VALUE 'Manufacturing Part',
c_cr_creator TYPE char100 VALUE 'CREATOR'.
CASE iv_service_name.
WHEN 'ZB_MAIL_APPROVER'.

* Get -- CR type
CALL METHOD cl_usmd_crequest_api=>get_instance
EXPORTING
iv_crequest = iv_cr_number
IMPORTING
et_message = et_messages
re_inst_crequest_api = crequest_api.

IF crequest_api IS NOT INITIAL.


CALL METHOD crequest_api->read_crequest
IMPORTING
es_crequest = es_crequest
et_note = et_note.
IF sy-subrc = 0.
lv_crequest = es_crequest-usmd_creq_type.
SORT et_note BY usmd_ncreated_at DESCENDING.
READ TABLE et_note INTO wa_note INDEX 1 .
IF sy-subrc = 0.
CONCATENATE wa_note-usmd_note lv_notes INTO lv_notes SEPARATED BY
cl_abap_char_utilities=>newline.
ENDIF.
ENDIF.
* Get -- requestor email address and name.

lv_requestor = es_crequest-usmd_created_by.
IF lv_requestor IS INITIAL.
EXIT.
ENDIF.

CALL FUNCTION 'BAPI_USER_GET_DETAIL'


EXPORTING
username = lv_requestor
cache_results = space
IMPORTING
address = ls_user_data
TABLES
return = lt_return.

IF sy-subrc = 0.
lv_requestor_email = ls_user_data-e_mail.
CONCATENATE ls_user_data-firstname ls_user_data-lastname INTO
lv_name_requestor SEPARATED BY space.
ENDIF.

CONCATENATE lv_body lv_name_requestor INTO lv_body SEPARATED BY space.


CONCATENATE lv_body Lv_notes INTO lv_body SEPARATED BY space.
CONCATENATE lv_body lv_newline INTO lv_body SEPARATED BY
cl_abap_char_utilities=>newline.

TRY.
CREATE OBJECT lo_message.
lv_subject = c_mail_subject.
lo_message->set_subject( lv_subject ).
lo_message->set_main_doc( lv_body ).
lv_mail_address = lv_requestor_email.
lo_message->add_recipient( lv_mail_address ).
lo_message->set_status_mail( 'N' ).
lo_message->set_requested_status( 'N' ).
lo_message->set_importance( 'N' ).
lo_message->set_send_immediately( 'X' ).
lo_message->send( ).
lo_message->show_send_log( ).
CATCH cx_bcs_send INTO lx_bcs_send.
ENDTRY.
ENDIF.
ENDCASE.
ENDMETHOD.

You might also like