ALV Tabelle als Excel in Mail versenden

Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Alles rund um die Sprache ABAP®: Funktionsbausteine, Listen, ALV
7 Beiträge • Seite 1 von 1
7 Beiträge Seite 1 von 1

ALV Tabelle als Excel in Mail versenden

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Guten Morgen zusammen,

Ich muss ein Protokoll, welches als ALV ausgegeben wird, gleichzeitig als E-Mail an eine angegebene Adresse versenden.
Gibt es hier Funktionsbausteine oder eine andere Möglichkeit das umzusetzen?
Habe einen Vorschlag von einem Kollege erhalten aber aus irgendeinem Grund wird keine E-Mail versandt, obwohl der Bool-Wert für versendet auf True steht. :/

Hoffe jemand kann mir weiterhelfen oder hat eine andere Idee wie ich das Ganze umsetzen kann.
Danke schon mal im Voraus!

Gruß
Dominic

Der Vollständigkeit halber hier mein aktueller Code:

Code: Alles auswählen.

FORM SEND_MAIL .
 
  CONSTANTS:
    gc_subject TYPE so_obj_des VALUE 'Anzhal Essenscheks',
    gc_raw     TYPE char03 VALUE 'RAW'.
 
  DATA:
    gv_sent_to_all   TYPE os_boolean,
    gv_email         TYPE adr6-smtp_addr,
    gv_text          TYPE bcsy_text,
    gr_send_request  TYPE REF TO cl_bcs,
    gr_bcs_exception TYPE REF TO cx_bcs,
    gr_recipient     TYPE REF TO if_recipient_bcs,
    gr_sender        TYPE REF TO cl_sapuser_bcs,
    gr_document      TYPE REF TO cl_document_bcs,
    lv_xlsx          TYPE XSTRING,
    lt_xml_tab       type solix_tab,
    lv_xml_length    type i,
    lv_xml_length_c  type sood-objlen.
 
 
  TRY.
      "Create send request
      gr_send_request = cl_bcs=>create_persistent( ).
 
 
      "Email FROM...
      gr_sender = cl_sapuser_bcs=>create( sy-uname ).
      "Add sender to send request
      CALL METHOD gr_send_request->set_sender
        EXPORTING
          i_sender = gr_sender.
 
 
      "Email TO...
      gv_email = p_mail.
      gr_recipient = cl_cam_address_bcs=>create_internet_address( gv_email ).
      "Add recipient to send request
      CALL METHOD gr_send_request->add_recipient
        EXPORTING
          i_recipient = gr_recipient
          i_express   = 'X'.
 
 
******  ---XLSX holen und aufbereiten---------------------------------------*
**********************************************************************
      lv_xlsx  = lo_alv_table->to_xml(
       xml_type    = if_salv_bs_xml=>c_type_xlsx
       xml_flavour = if_salv_bs_c_tt=>c_tt_xml_flavour_full "C_TT_XML_FLAVOUR_EXPORT
      ).
 
**********************************************************************
 
      CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
        EXPORTING
          buffer        = lv_xlsx
        IMPORTING
          output_length = lv_xml_length
        TABLES
          binary_tab    = lt_xml_tab
        EXCEPTIONS
          others        = 1.
 
      lv_xml_length_c = lv_xml_length.
 
 
      "Email BODY
      APPEND 'Tabelle mit Anzahl der Essenschecks' TO gv_text.
      gr_document = cl_document_bcs=>create_document(
                      i_type    = gc_raw
                      i_text    = gv_text
                      i_length  = '12'
                      i_subject = gc_subject ).
      "Add document to send request
 
      gr_document->ADD_ATTACHMENT(
                            I_ATTACHMENT_TYPE     = 'xls'
                            i_attachment_subject  = 'Essenschecks.xlsx'
                            i_att_content_hex    = lt_xml_tab
                            I_ATTACHMENT_SIZE  = lv_xml_length_c ).
 
      CALL METHOD gr_send_request->set_document( gr_document ).
 
 
      "Send email
      CALL METHOD gr_send_request->send(
        EXPORTING
          i_with_error_screen = 'X'
        RECEIVING
          result              = gv_sent_to_all ).
      IF gv_sent_to_all = 'X'.
*        WRITE 'Email sent!'.
      ENDIF.
 
      "Commit to send email
      COMMIT WORK.
 
 
      "Exception handling
    CATCH cx_bcs INTO gr_bcs_exception.
*      WRITE:
*        'Error!',
*        'Error type:',
*        gr_bcs_exception->error_type.
  ENDTRY.
 
ENDFORM.                    " SEND_MAIL 

gesponsert
Stellenangebote auf ABAPforum.com schalten
kostenfrei für Ausbildungsberufe und Werksstudenten


Re: ALV Tabelle als Excel in Mail versenden

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
Dyrdek hat geschrieben:Habe einen Vorschlag von einem Kollege erhalten aber aus irgendeinem Grund wird keine E-Mail versandt, obwohl der Bool-Wert für versendet auf True steht. :/
Das Coding verwende ich in einer ähnlicher Form selbst, daran kann es also nicht liegen. Ich denke eher an ein Konfigurationsproblem der Basis Komponenten für den Email-Versand.
Ist der Job für den Email-Versand eingerichtet? Ist der Email-Versand am System überhaupt eingerichtet? Ist für alle User ein zugehöriger SAPOffice-User angelegt worden? "Vertraut" (Trusted-Beziehung) der Mail-Server dem SAP-System und den darauf eingerichteten Benutzern?

lg ADT
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV Tabelle als Excel in Mail versenden

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Da du keinen Sofortversand eingeschaltet hast - steht die Email evtl. noch in der Queue ( Transaktion SOST )
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: ALV Tabelle als Excel in Mail versenden

Beitrag von Mole1986m (ForumUser / 7 / 0 / 0 ) »
wie black_adept bereits sagte, schau mal in der SOST nach ob die E-Mail in der Queue hängt.
Selektiere in der SOST unter Sendestatus auch die "Wartend" E-Mails oder evtl. auch unter Weitere "Noch kein Eintrag in der Warteschlange".

Re: ALV Tabelle als Excel in Mail versenden

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
a-dead-trousers hat geschrieben:Ist der Job für den Email-Versand eingerichtet? Ist der Email-Versand am System überhaupt eingerichtet? Ist für alle User ein zugehöriger SAPOffice-User angelegt worden? "Vertraut" (Trusted-Beziehung) der Mail-Server dem SAP-System und den darauf eingerichteten Benutzern?
Dafür schaut man doch mittels der TA SOST nach.
Ist dort ein Eintrag für die erzeugte eMail zufinden? Welcher Status/Fehlercode hat sie.

Wenn man auf sofort versenden stellt:

Code: Alles auswählen.

     call method lr_send_request->set_send_immediately
        exporting
          i_send_immediately = 'X'.
Braucht es nicht zwingend einen Sendejob.

Beim Attachment scheint mir die Dateierweiterung noch falsch:

Code: Alles auswählen.

gr_document->ADD_ATTACHMENT(
                            I_ATTACHMENT_TYPE     = 'xls'
                            i_attachment_subject  = 'Essenschecks'             "ohne Dateiendung
                            i_att_content_hex    = lt_xml_tab
                            i_attachment_header   = |&SO_FILENAME= Essenschecks.xlsx| "zusätzlich nochmal mit richtiger Dateiendung
                            I_ATTACHMENT_SIZE  = lv_xml_length_c ).
Gruß Hendrik

Re: ALV Tabelle als Excel in Mail versenden

Beitrag von a-dead-trousers (Top Expert / 4271 / 213 / 1140 ) »
JHM hat geschrieben:
a-dead-trousers hat geschrieben:Ist der Job für den Email-Versand eingerichtet? Ist der Email-Versand am System überhaupt eingerichtet? Ist für alle User ein zugehöriger SAPOffice-User angelegt worden? "Vertraut" (Trusted-Beziehung) der Mail-Server dem SAP-System und den darauf eingerichteten Benutzern?
Dafür schaut man doch mittels der TA SOST nach.
Die TA kannte ich nicht. Hab das immer an die Basis-Truppe weiterdelegiert. :oops:
Theory is when you know something, but it doesn't work.
Practice is when something works, but you don't know why.
Programmers combine theory and practice: Nothing works and they don't know why.

ECC: 6.18
Basis: 7.50

Re: ALV Tabelle als Excel in Mail versenden

Beitrag von Dyrdek (Specialist / 306 / 30 / 0 ) »
Ok danke euch für die Hilfe! :)
Habe den Fehler gefunden, ist mir wohl beim übertragen auf mein Projekt passiert.

Das Coding funktioniert einwandfrei.

In die SOST habe ich bereits reingeschaut und als ich meinen Fehler behoben habe wurden Sie da auch wie erwähnt in der Queue angezeigt.

Danke nochmal! Jetzt passt alles. :)
Schönen Feierabend!

Seite 1 von 1

Vergleichbare Themen

5
Antw.
5394
Views
Interne Tabelle als Mail versenden
von SaskuAc » 12.03.2018 14:38 • Verfasst in ABAP® Core
15
Antw.
999
Views
Interne Tabelle als Excel mit mehrere Blättern versenden
von lisa » 16.02.2022 19:33 • Verfasst in ABAP® für Anfänger
2
Antw.
133
Views
E-Mail-Anhang aus Verzeichnis per Mail versenden
von Patrick1982 » 22.11.2023 15:19 • Verfasst in ABAP® für Anfänger
2
Antw.
1899
Views
4.7 Mail versenden
von Baltasa » 06.03.2006 10:33 • Verfasst in ABAP® Core
5
Antw.
3096
Views
E-Mail versenden aus PBO / PAI
von drkasper » 24.04.2007 11:20 • Verfasst in Dialogprogrammierung

Über diesen Beitrag


Die Frage ist als "gelöst" markiert. Den entsprechend Beitrag findest du hier.

Unterstütze die Community und teile den Beitrag für mehr Leser und Austausch

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Newsletter Anmeldung

Keine Beiträge verpassen! Wöchentlich versenden wir lesenwerte Beiträge aus unserer Community.
Die letzte Ausgabe findest du hier.
Details zum Versandverfahren und zu Ihren Widerrufsmöglichkeiten findest du in unserer Datenschutzerklärung.

Aktuelle Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Interne Tabelle
vor 5 Tagen von black_adept 2 / 133
MaLo-Checker in ABAP
vor einer Woche von A6272 6 / 254

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Tagen von Lucyalison 1 / 64
Group Items auf einer Filterbar
vor einer Woche von Bright4.5 1 / 107
tRFC Transaktionen SM58
vor 4 Wochen von A6272 1 / 140