E-Mail senden (klassischen Klassen und Methoden)

Aus SAP Wiki ツ
Version vom 18. Juli 2021, 14:53 Uhr von 80.135.221.175 (Diskussion) (Die Seite wurde neu angelegt: „Kategorie:Codeschnipsel === Deklaration === DATA: go_send_request TYPE REF TO cl_bcs, go_document TYPE REF TO cl_document_bcs,…“)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)


Deklaration

DATA: go_send_request       TYPE REF TO cl_bcs,
      go_document           TYPE REF TO cl_document_bcs,
      go_sender             TYPE REF TO cl_sapuser_bcs,
      go_sender2            TYPE REF TO if_sender_bcs,
      go_receiver           TYPE REF TO if_recipient_bcs,
      gt_mail_text_tab      TYPE soli_tab,
      gv_subject            TYPE so_obj_des,
      gt_distribution_list  TYPE TABLE OF sodlienti1,
      gv_recipient          TYPE adr6-smtp_addr,
      gv_size               TYPE so_obj_len,
      gt_binary_content     TYPE solix_tab,
      gv_data_tab_as_string TYPE string,
      gv_att_name           TYPE sood-objdes.

Codeschnipsel

go_send_request = cl_bcs=>create_persistent( ).

CONCATENATE 'Betreff' sy-datum INTO gv_subject SEPARATED BY space.

APPEND 'Mail Text in E-Mail' TO gt_mail_text_tab.

go_document = cl_document_bcs=>create_document( i_type    = 'RAW'
                                                i_text    = gt_mail_text_tab
                                                i_subject = gv_subject ).

***** Attachment: tab data as string to .xls
"new column: CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB
"new row: CL_ABAP_CHAR_UTILITIES=>CR_LF

cl_bcs_convert=>string_to_solix(
       EXPORTING
         iv_string   = gv_data_tab_as_string
         iv_codepage = '4103'  "suitable for MS Excel, leave empty
         iv_add_bom  = 'X'     "for other doc types
       IMPORTING
         et_solix  = gt_binary_content
         ev_size   = gv_size ).
       
go_document->add_attachment(
  EXPORTING
    i_attachment_type     = 'xls'
    i_attachment_subject  = gv_att_name             
    i_attachment_size     = gv_size    
    i_att_content_hex     = gt_binary_content ).
   
go_send_request->set_document( go_document ).

"Add sender variant 1
go_sender = cl_sapuser_bcs=>create( sy-uname ).
"Add sender variant 2
go_sender2 = cl_cam_address_bcs=>create_internet_address( i_address_string = iv_sender ).

go_send_request->set_sender( go_sender ). "go_send_request->set_sender( go_sender2 )

"Add receivers variant 1:
LOOP AT gt_distribution_list INTO DATA(recpt).
 gv_recipient = recpt-full_name.
 go_receiver = cl_cam_address_bcs=>create_internet_address( gv_recipient ).
 go_send_request->add_recipient( go_receiver ).
ENDLOOP.
 "Add recievers variant 2:
go_receiver = cl_distributionlist_bcs=>getu_persistent( i_dliname = iv_distributionlist i_private = abap_false ).
go_send_request->add_recipient( go_receiver ).

go_send_request->send( ).

COMMIT WORK.

Dieses Wiki wird privat in Freizeit nach bestem Wissen und Gewissen gepflegt und dient primär als eigene Wissenssammlung für die tägliche Arbeit im SAP-ERP-Umfeld.
Alle dargestellten Softwareprodukte, auch in Form von Screenshots, sind Eigentum der SAP SE. Ihre Marken, vgl. Link, sind u.a.: SAP®, ABAP®, SAP Fiori®, SAP HANA®, SAP S/4HANA®, SAP S/4HANA® Cloud