07-14-2022 9:40 AM
Hallo zusammen ich habe eine Problem. das Programm sollte die ungepflegte daten in einen datei rein packen und in einem email mit ein attachment schicken. Doch in den Datei werden alle infos an jedem email geschickt. es muss in jedem datei nur bestimmte infos die zu diesem email gehören. ich hoffe ich habe meine problem geklärt
DATA: lv_string TYPE string,
lv_data_string TYPE string,
lv_xstring TYPE xstring,
lt_bin TYPE solix_tab,
lt_body TYPE soli_tab,
ls_body TYPE soli.
LOOP AT ct_typ ASSIGNING FIELD-SYMBOL(<fs_typ>).
CONCATENATE <fs_typ>-matnr <fs_typ>-werks <fs_typ>-ekgrp <fs_typ>-dismm <fs_typ>-disls <fs_typ>-mrppp
INTO lv_string SEPARATED BY cl_abap_char_utilities=>horizontal_tab.
CONCATENATE lv_string lv_data_string INTO lv_data_string
SEPARATED BY cl_abap_char_utilities=>newline.
AT NEW smtp_addr.
DATA(lt_email_tab) = VALUE tty_email( ).
ENDAT.
APPEND CORRESPONDING ts_email( <fs_typ> ) TO lt_email_tab.
AT END OF smtp_addr.
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = lv_data_string
IMPORTING
buffer = lv_xstring.
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = lv_xstring
TABLES
binary_tab = lt_bin.
*alt
ls_body-line = 'nachricht'.
APPEND ls_body TO lt_body.
*neu
*APPEND VALUE #( line = 'nachricht') to lt_body.
CALL METHOD cl_document_bcs=>create_document
EXPORTING
i_type = 'TXT'
i_subject = 'subject'
i_text = lt_body
RECEIVING
result = DATA(lo_doc).
CALL METHOD lo_doc->add_attachment
EXPORTING
i_attachment_type = 'XLS'
i_attachment_subject = 'Excel File'
i_att_content_hex = lt_bin.
CALL METHOD cl_bcs=>create_persistent
RECEIVING
result = DATA(lo_send_request).
CALL METHOD lo_send_request->set_document
EXPORTING
i_document = lo_doc.
CALL METHOD cl_sapuser_bcs=>create
EXPORTING
i_user = 'CE-BATCH'
RECEIVING
result = DATA(lo_sender).
.
CALL METHOD cl_cam_address_bcs=>create_internet_address
EXPORTING
i_address_string = <fs_typ>-smtp_addr
RECEIVING
result = DATA(lo_empf).
CALL METHOD lo_send_request->set_sender
EXPORTING
i_sender = lo_sender.
CALL METHOD lo_send_request->add_recipient
EXPORTING
i_recipient = lo_empf
i_express = abap_true.
CALL METHOD lo_send_request->send
RECEIVING
result = DATA(lv_status).
COMMIT WORK.
ENDAT.
ENDLOOP.<br>
07-14-2022 9:51 AM
LOOP AT ct_typ ASSIGNING FIELD-SYMBOL(<fs_typ>).
clear lv_data_string " <-- forgoted
CONCATENATE <fs_typ>-matnr <fs_typ>-werks <fs_typ>-ekgrp <fs_typ>-dismm <fs_typ>-disls <fs_typ>-mrppp
INTO lv_string SEPARATED BY cl_abap_char_utilities=>horizontal_tab.
CONCATENATE lv_string lv_data_string INTO lv_data_string
07-14-2022 9:51 AM
LOOP AT ct_typ ASSIGNING FIELD-SYMBOL(<fs_typ>).
clear lv_data_string " <-- forgoted
CONCATENATE <fs_typ>-matnr <fs_typ>-werks <fs_typ>-ekgrp <fs_typ>-dismm <fs_typ>-disls <fs_typ>-mrppp
INTO lv_string SEPARATED BY cl_abap_char_utilities=>horizontal_tab.
CONCATENATE lv_string lv_data_string INTO lv_data_string
07-14-2022 10:21 AM
ich habe es immer am ende gemacht und es hat nicht funktioniert dachte es sollte andere Lösung geben. sorry für die dumme fehler bin noch Anfänger.
trotzdem vielen dank für die hilfe
07-14-2022 10:38 AM
07-14-2022 10:04 AM
07-14-2022 10:07 AM
Ich habe Angst, dass ich etwas falsch mache und Sandra vorbeikommt
07-14-2022 10:23 AM
07-14-2022 1:02 PM