Code: Alles auswählen.
DATA: e_document_data LIKE sodocchgi1,
t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE,
l_pdf_tab LIKE solix OCCURS 0,
tab_lines LIKE sy-tabix,
l_line TYPE SO_RAW255,
l_line_cont TYPE SOLIX,
subjekt TYPE SO_OBJ_DES,
body LIKE solisti1 OCCURS 0 WITH HEADER LINE,
attachment_name TYPE SO_OBJ_DES.
* ----- Texte Aus der Customizing-Tabelle ----- *
subjekt = 'Subjekt'.
body = 'Sehr geehrte Damen und Herren'.
APPEND body.
CLEAR body.
Append body.
body = 'Mit freundlichen Grüßen!'.
APPEND body.
attachment_name = 'attachment.pdf'.
* ----- Daten für Mail ----- *
tab_lines = lines( body ).
READ TABLE body INDEX tab_lines.
e_document_data-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( body ).
e_document_data-obj_name = subjekt.
e_document_data-obj_descr = subjekt.
* ----- Textteil der Mail verpacken ----- *
t_packing_list-head_start = 1.
t_packing_list-head_num = 0.
t_packing_list-body_start = 1.
t_packing_list-body_num = tab_lines.
t_packing_list-doc_type = 'RAW'.
APPEND t_packing_list.
* ----- PDF-Teil der Mail erzeugen und verpacken ----- *
LOOP AT g_pdf_data_tab INTO l_line.
l_line_cont-LINE = l_line.
APPEND l_line_cont TO l_pdf_tab.
ENDLOOP.
tab_lines = lines( l_pdf_tab ).
t_packing_list-transf_bin = 'X'.
t_packing_list-head_start = 1.
t_packing_list-head_num = 1.
t_packing_list-body_start = 1.
t_packing_list-body_num = tab_lines.
t_packing_list-doc_type = 'PDF'.
t_packing_list-obj_name = 'ANLAGE'.
t_packing_list-doc_size = tab_lines * 255.
t_packing_list-obj_descr = attachment_name.
APPEND t_packing_list.
* ----- Empfänger-Adresse ----- *
t_receivers-receiver = 'SAP_USER'. "zu löschen, wenn produktiv
t_receivers-rec_type = 'B'. "zu löschen, wenn produktiv
APPEND t_receivers. "zu löschen, wenn produktiv
t_receivers-receiver = ''MeineAdresse@test.de'.
t_receivers-rec_type = 'U'.
APPEND t_receivers.
* ----- MAILEN ----- *
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = e_document_data
TABLES
packing_list = t_packing_list
object_header = t_object_header
contents_hex = l_pdf_tab
contents_txt = body
receivers = t_receivers
EXCEPTIONS
OTHERS = 4.
* ----- Auswertung der Ereignisse ----- *
CASE SY-SUBRC.
WHEN 0.
LOOP AT t_receivers.
IF t_receivers-RETRN_CODE <> 0.
DATA out TYPE string.
CONCATENATE text-120 '(an' t_receivers-RECEIVER ')'
INTO out SEPARATED BY SPACE.
MESSAGE out TYPE 'I'.
ENDIF.
ENDLOOP.
WHEN OTHERS.
MESSAGE text-120 TYPE 'I'.
ENDCASE.
ENDFORM.