Interne Tabelle Mail verschicken mit CL BCS (Business Communication Service)
Aus SAP-Wiki
(Weitergeleitet von Interne Tabelle Mail verschicken mit CL BCS)
Siehe Klasse CL BCS (Business Communication Service).
FORM send_mail . DATA: lo_send_request TYPE REF TO cl_bcs. DATA: lt_text TYPE bcsy_text. DATA: lv_text TYPE soli. DATA: lt_binary_content TYPE solix_tab. DATA: lo_document TYPE REF TO cl_document_bcs. DATA: lo_sender TYPE REF TO cl_sapuser_bcs. DATA: lo_recipient TYPE REF TO if_recipient_bcs. DATA: lx_bcs_exception TYPE REF TO cx_bcs. DATA: lv_sent_to_all TYPE os_boolean. DATA: lv_var TYPE string, lv_stext TYPE string, lv_percentage TYPE string. TRY. lo_send_request = cl_bcs=>create_persistent( ). SORT gt_outdat BY status. LOOP AT gt_outdat INTO DATA(ls_outdat) WHERE status <> icon_led_green. CASE ls_outdat-status. WHEN icon_led_red. lv_stext = | Der Schwellenwert für das Land { ls_outdat-land1 } wurde überschritten (siehe Transaktion ZSD_SW) | . WHEN icon_led_yellow. lv_percentage = ls_outdat-in_proz. REPLACE FIRST OCCURRENCE OF '&1' IN lv_var WITH lv_percentage. lv_stext = | Der Schwellenwert für das Land { ls_outdat-land1 } ist zu { lv_percentage } Prozent erreicht | . WHEN icon_message_critical. lv_stext = | Customizing fehlt für Land { ls_outdat-land1 } | . ENDCASE. lv_text = lv_stext. INSERT lv_text INTO TABLE lt_text. ENDLOOP. IF lt_text IS INITIAL. MESSAGE 'Keine Fehler-Mails zu versenden'(007) TYPE 'I'. ELSE. lo_document = cl_document_bcs=>create_document( i_type = 'RAW' i_text = lt_text i_length = '12' i_subject = CONV #( TEXT-008 ) ). "'Fehler bei Schwellwert-Prüfung' ). lo_send_request->set_document( lo_document ). lo_sender = cl_sapuser_bcs=>create( sy-uname ). lo_send_request->set_sender( EXPORTING i_sender = lo_sender ). lo_recipient = cl_cam_address_bcs=>create_internet_address( i_address_string = CONV #( p_madr ) ). lo_send_request->add_recipient( EXPORTING i_recipient|1= lo_recipient i_express = abap_true ). lo_send_request->send( EXPORTING i_with_error_screen|1= abap_true RECEIVING result = lv_sent_to_all ). COMMIT WORK. IF sy-subrc = 0. MESSAGE 'Fehler-Mails wurden versandt'(002) TYPE 'I'. ENDIF. ENDIF. CATCH cx_bcs INTO lx_bcs_exception. ENDTRY. ENDFORM.