Code: Alles auswählen.
METHOD send_mails_to_line_manager.
SORT mt_employees BY boss.
LOOP AT mt_employees INTO DATA(ls_employee).
AT END OF boss.
TRY.
IF zcl_hr_om_access=>get_hay_level_for_object( im_otype = 'P' im_objid = ls_employee-boss )
BETWEEN '15' AND '18'.
DATA(lo_mail) = NEW cl_bcs_message( ).
lo_mail->add_recipient( iv_address = CONV bcs_address( zcl_hr_employee=>get_p0105_email( ls_employee-boss ) ) ).
lo_mail->set_sender( iv_address = cdv_sender ). " cdv_sender ist type bcs_address - wert wird vom parameter im class_constructor übergeben
lo_mail->set_main_doc( iv_contents_bin = me->build_mail( ls_employee-boss ) " Hauptdokument, 1. Bodypart (binär)
iv_doctype = 'HTM' ).
lo_mail->set_subject( CONV bcs_subject( text-sub ) ).
lo_mail->send( ).
ENDIF.
CATCH cx_bcs INTO DATA(lox_bcs).
MESSAGE e000(su) WITH lox_bcs->get_text( ).
ENDTRY.
ENDAT.
ENDLOOP.
ENDMETHOD.
METHOD build_mail.
DATA(lv_html) = '<html>' &&
'<body style="font-family:arial;">' &&
'<p> </p>' &&
'<table style="width:100%">' &&
'<tr style="text-align:left;">' &&
'<th style="text-align:left;">' && text-th1 && '</th>' &&
" weitere Zeilen werden aus übersichtsgründen gelöscht
'</tr>'.
LOOP AT mt_employees INTO DATA(ls_employee) WHERE boss = iv_boss.
lv_html = lv_html &&
'<tr>' &&
'<td>' && ls_employee-pernr && '</td>' &&
" weitere Zeilen werden aus übersichtsgründen gelöscht
'</tr>'.
ENDLOOP.
lv_html = lv_html && '</table>' && '</body>' && '</html>'.
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = lv_html
IMPORTING
buffer = rv_html.
ENDMETHOD.