Code: Alles auswählen.
DATA: wa_docdata TYPE sodocchgi1,
wa_objpack TYPE sopcklsti1 ,
ta_objpack TYPE STANDARD TABLE OF sopcklsti1,
wa_objtxt TYPE solisti1,
ta_objtxt TYPE STANDARD TABLE OF solisti1,
wa_reclist TYPE somlreci1,
ta_reclist TYPE STANDARD TABLE OF somlreci1,
wa_contents_bin TYPE solisti1,
ta_contents_bin TYPE STANDARD TABLE OF solisti1,
v_row TYPE so_text255,
v_tablines_mail TYPE i,
v_descript(255) TYPE c,
wa_objhead TYPE solisti1,
ta_objhead TYPE STANDARD TABLE OF solisti1,
ta_zta_pfmaillist TYPE STANDARD TABLE OF zta_pfmaillist,
wa_zta_pfmaillist LIKE LINE OF ta_zta_pfmaillist.
wa_objtxt = 'Sehr geehrte Damen und Herren,'.
APPEND wa_objtxt TO ta_objtxt.
wa_objtxt = 'anbei finden Sie die Verzollungsdatei für die Schweiz:'.
APPEND wa_objtxt TO ta_objtxt.
CONCATENATE 'Lieferant:' wa_vstel-vstel wa_vstel-vtext
INTO wa_objtxt.
APPEND wa_objtxt TO ta_objtxt.
wa_objtxt = 'Mit freundlichen Grüßen.'.
APPEND wa_objtxt TO ta_objtxt.
wa_objtxt = 'Ihr Manufactum Tem.'.
APPEND wa_objtxt TO ta_objtxt.
DESCRIBE TABLE ta_objtxt LINES v_tablines_mail.
READ TABLE ta_objtxt
INTO wa_objtxt
INDEX v_tablines_mail.
clear ta_reclist.
SELECT *
FROM zta_pfmaillist
INTO CORRESPONDING FIELDS OF TABLE ta_zta_pfmaillist.
LOOP AT ta_ZTA_PFMAILLIST
INTO wa_zta_pfmaillist.
loop at ta_reclist into wa_reclist.
move wa_zta_pfmaillist-receiver to wa_reclist-receiver.
move wa_zta_pfmaillist-rec_type to wa_reclist-receiver.
APPEND wa_reclist TO ta_reclist.
endloop.
ENDLOOP.
v_descript = 'Pflanzenversand Zoll-Datei'.
wa_docdata-obj_name = v_attach_name.
wa_docdata-obj_descr = v_descript.
wa_docdata-obj_langu = sy-langu.
wa_docdata-obj_sort = sy-datum.
wa_docdata-obj_expdat = sy-datum + 30.
wa_docdata-sensitivty = 'O'.
wa_docdata-obj_prio = '1'.
wa_docdata-no_change = 'X'.
wa_docdata-proc_type = 'T'.
wa_docdata-proc_name = 'SP01'.
wa_docdata-proc_syst = sy-sysid.
wa_docdata-proc_clint = sy-mandt.
wa_docdata-skip_scren = ' '.
wa_docdata-to_do_out = ' '.
wa_docdata-free_del = ' '.
wa_docdata-doc_size = ( v_tablines_mail - 1 ) * 255 + strlen( wa_objtxt ).
wa_objpack-transf_bin = 'X'.
wa_objpack-head_start = 1.
wa_objpack-head_num = 1.
wa_objpack-body_start = 1.
wa_objpack-doc_type = 'RAW'.
wa_objpack-body_num = v_tablines_mail.
CONCATENATE v_attach_name '.csv'
INTO wa_objpack-obj_name.
CONCATENATE v_attach_name '.csv'
INTO wa_objpack-obj_descr.
APPEND wa_objpack TO ta_objpack.
wa_objpack-doc_size = v_tablines_mail * 255.
APPEND wa_objpack TO ta_objpack.
wa_objhead = v_descript.
APPEND wa_objhead TO ta_objhead.
LOOP AT ta_ausgabe
INTO wa_ausgabe.
v_row = wa_ausgabe-fkimg.
CONDENSE v_row.
CONCATENATE wa_ausgabe-fkdat
v_row
wa_ausgabe-maktx
wa_ausgabe-matnr
wa_ausgabe-vbeln
wa_ausgabe-vkorg_auft
wa_ausgabe-vrkme
" wa_ausgabe-vstel
INTO v_row SEPARATED BY ';'.
CONCATENATE v_row wa_ausgabe-vstel INTO v_row.
MOVE v_row TO wa_contents_bin.
APPEND wa_contents_bin TO ta_contents_bin.
ENDLOOP.
CALL FUNCTION 'SO_DOCUMENT_SEND_API1'
EXPORTING
document_data = wa_docdata
put_in_outbox = 'X'
commit_work = 'X'
TABLES
object_header = ta_objhead
packing_list = ta_objpack
contents_bin = ta_contents_bin
contents_txt = ta_objtxt
receivers = ta_reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
OTHERS = 8.
IF sy-subrc <> 0.
* Implement suitable error handling here
ENDIF.