Folgende Benutzer bedankten sich beim Autor Lucyalison für den Beitrag:
deejey
Code: Alles auswählen.
METHOD if_badi_sd_sls_email~process_document.
DATA:
v_langu TYPE ssfrlang,
t_text TYPE tsftext,
s_text TYPE LINE OF tsftext,
t_soli TYPE soli_tab,
t_solix TYPE solix_tab,
s_soli TYPE soli,
t_query TYPE TABLE OF w3query,
s_query TYPE w3query,
t_pick TYPE TABLE OF w3mime,
t_html TYPE TABLE OF w3html,
v_returncode TYPE w3param-ret_code,
v_contenttype TYPE w3param-cont_type,
v_contentlength TYPE w3param-cont_len,
v_len TYPE so_obj_len,
v_subject TYPE so_obj_des,
lo_exc_send_req_bcs TYPE REF TO cx_send_req_bcs,
lo_exc_doc_bcs TYPE REF TO cx_document_bcs,
lo_doc_bcs TYPE REF TO cl_document_bcs,
lo_send_request TYPE REF TO cl_bcs,
lo_mime_helper TYPE REF TO cl_gbt_multirelated_service,
t_files TYPE file_attributes_t,
s_file TYPE file_attributes_s,
v_sent_to_all TYPE os_boolean.
CONSTANTS: c_name TYPE w3_qname VALUE '_OBJECT_ID',
c_value TYPE w3_qvalue VALUE 'Z_LOGO_MAIL',
c_mail_zt TYPE tdsfname VALUE 'ZSD_ZT_MAIL'.
DATA go_cl_helper_obj TYPE REF TO cl_sd_email_helper .
CREATE OBJECT go_cl_helper_obj TYPE cl_sd_email_helper.
TRY.
lo_send_request = cl_bcs=>create_persistent( ).
IF is_file_attribs-pdf_file IS NOT INITIAL.
MOVE is_file_attribs TO s_file.
IF s_file-iv_file_subject IS INITIAL.
*Append incoing file structure to table type
APPEND s_file TO t_files.
*Helper class method to convert binary string to PDF.
CALL METHOD go_cl_helper_obj->add_attachment
CHANGING
ct_file_attribs = t_files.
ENDIF.
ENDIF.
CLASS cl_sapuser_bcs DEFINITION LOAD.
v_langu-langu1 = iv_language.
CALL FUNCTION 'SSFRT_READ_TEXTMODULE'
EXPORTING
i_textmodule = c_mail_zt
i_languages = v_langu
IMPORTING
o_text = t_text
EXCEPTIONS
error = 1
language_not_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.
LOOP AT t_text INTO s_text.
MOVE s_text-tdline TO s_soli-line.
APPEND s_soli TO t_soli.
ENDLOOP.
CREATE OBJECT lo_mime_helper.
CALL METHOD lo_mime_helper->set_main_html
EXPORTING
content = t_soli
filename = 'filenamehtml'
description = 'descriptionhtml'.
REFRESH t_query.
s_query-name = c_name.
s_query-value = c_value.
APPEND s_query TO t_query.
CALL FUNCTION 'WWW_GET_MIME_OBJECT'
TABLES
query_string = t_query
html = t_html
mime = t_pick
CHANGING
return_code = v_returncode
content_type = v_contenttype
content_length = v_contentlength
EXCEPTIONS
invalid_table = 1
parameter_not_found = 2
OTHERS = 3.
IF sy-subrc = 0.
v_len = v_contentlength.
ENDIF.
t_solix[] = t_pick[].
CALL METHOD lo_mime_helper->add_binary_part
EXPORTING
content = t_solix " lt_part_bin
content_type = ''
length = v_len
content_id = 'content_id_3'.
*To modify email subject
SET LANGUAGE iv_language.
CONCATENATE text-001 zcl_ca_forms_enh=>mv_bstkd ')' INTO v_subject.
SET LANGUAGE sy-langu.
CALL METHOD cl_document_bcs=>create_from_multirelated
EXPORTING
i_subject = v_subject
i_multirel_service = lo_mime_helper
RECEIVING
result = lo_doc_bcs.
LOOP AT t_files INTO s_file.
*--- Add the document as an attachment
CALL METHOD lo_doc_bcs->add_attachment
EXPORTING
i_attachment_type = s_file-iv_file_type
i_attachment_size = s_file-iv_file_size
i_attachment_subject = s_file-iv_file_subject
i_attachment_language = iv_language
i_att_content_hex = s_file-iv_file_content_hex.
ENDLOOP.
CALL METHOD io_cl_bcs->set_document
EXPORTING
i_document = lo_doc_bcs.
CATCH cx_send_req_bcs INTO lo_exc_send_req_bcs.
CATCH cx_document_bcs INTO lo_exc_doc_bcs.
CATCH cx_root.
RAISE exc_send_req_bcs.
ENDTRY.
ENDMETHOD.
Folgende Benutzer bedankten sich beim Autor Lucyalison für den Beitrag:
deejey
Hi Nicola,Lucyalison hat geschrieben: ↑02.03.2022 09:18Ich schicke Dir mal ein Beispiel - ich habe jetzt ein paar Abfrage rausgenommen, die Rückschlüsse auf den Kunden zulassen, ich hoffe es funktioniert trotzdem. Hier wird auch ein Mail-Bodytext inklusive eines Logos mitgegeben. Die Attachments stehen in der t_files.
Folgende Benutzer bedankten sich beim Autor Lucyalison für den Beitrag:
deejey