Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

email mit attachment schicken abap

aboooood
Participant
0 Kudos

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>
1 ACCEPTED SOLUTION

FredericGirod
Active Contributor
  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
7 REPLIES 7

FredericGirod
Active Contributor
  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

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

ich mache ständig dumme Fehler 😉

abo
Active Contributor
0 Kudos

frdric.girod dein Kommentar ist eine Antwort 🙂

FredericGirod
Active Contributor

Ich habe Angst, dass ich etwas falsch mache und Sandra vorbeikommt

aboooood
Participant
0 Kudos

ich kenne Sandra nicht aber das hört sich nicht g-ut an XD

Sandra_Rossi
Active Contributor

Ich bin immer noch da frdric.girod 😉