Interne Tabelle als Mail versenden

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

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

Interne Tabelle als Mail versenden

Beitrag von SaskuAc (Specialist / 321 / 37 / 43 ) »
Hallo,

ich möchte gerne meine interne Tabelle mit drei Spalten per Mail versenden.
Zum versenden der Mail nehme ich die Klasse CL_BCS_MESSAGE her.

Nun war meine Idee, dass ich per HTML einfach für jeden Eintrag in der Tabelle eine weitere Zeile in der "Table" Komponente des HTML Textes hinzufüge ( also ich erzeuge per html eine tabelle und jeder eintrag in der internen Tabelle = eine zeile in der HTML tabelle - lässt sich ja mit einem loop relativ einfach lösen .. )

Allerdings dachte ich mir, dass es doch wahrscheinlich schönere methoden gibt ( einen FuBa oder eine Klasse ) die mir das umwandelt .. Heißt die mir die interne Tabelle zu einem String oder XString umwandelt, sodass ich sie ordentlich per Mail versenden kann. falls es sowas nicht gibt, werde ich wohl die 1. Variante hernehmen .. aber ich wollte lieber nochmal nachfragen.

am beste wäre natürlich ein FuBa ( oder Klasse ) die mir die interne Tabelle als HTML wieder gibt, welchen ich dann einfach in den Rest einfügen muss.

Danke euch schon mal.

Beste Grüße

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


Re: Interne Tabelle als Mail versenden

Beitrag von lausek (ForumUser / 64 / 2 / 20 ) »
Also wenn du das als Excel-Sheet versenden willst, empfiehlt sich https://github.com/ivanfemia/abap2xlsx.

Wenn es allerdings nur eine HTML-Mail sein soll, hätte ich das einfach runterimplementiert. Die Zeit, die ich damit verschwende in nutzloser SAP-Doku zu blättern, wäre mir doch etwas zu schade und HTML Tables sind nichts komplexes.

Re: Interne Tabelle als Mail versenden

Beitrag von ralf.wenzel (Top Expert / 3776 / 176 / 262 ) »
So hab ich es mal gemacht..... Gefunden hab ich auch nichts, was einem diese Arbeit abnimmt.


Ralf
Bild
Ralf Wenzel Heuristika SAP-Development
25 Jahre SAP-Entwickler • 20 Jahre Freiberufler
PublikationenUngarische NotationXing

Re: Interne Tabelle als Mail versenden

Beitrag von zzcpak (Expert / 673 / 5 / 67 ) »
Es gibt noch die Bausteine:

WWW_ITAB_TO_HTML
WWW_ITAB_TO_HTML_HEADERS
WWW_ITAB_TO_HTML_LAYOUT

Will man jedoch noch die Formatierung einer HTML-Tabelle selbst etwas anpassen, ist es m.A. fast einfacher, die Generierung der Tabelle selbst zu schreiben.
Ein weiteres Beispiel dazu gibt es hier: http://codezentrale.bplaced.net/dcz/?p=6932

Re: Interne Tabelle als Mail versenden

Beitrag von black_adept (Top Expert / 3943 / 105 / 886 ) »
Die Klasse cl_gui_alv_grid bietet doch auch einen (eigentlich ganz hübsch anzusehenden) HTML-Export an und verwendet dafür den FuBa LVC_ALV_CONVERT_TO_HTML
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Interne Tabelle als Mail versenden

Beitrag von Legxis (Specialist / 160 / 90 / 28 ) »
Also wenn ich Mails mit Tabellen verschicke, dann benutze ich eine Transformation. In etwa so:

Deklaration der internen Tabellen und Workareas:

Code: Alles auswählen.

TYPES: BEGIN OF ty_apqi,
  groupid       TYPE      apqi-groupid,
  qstate        TYPE      apqi-qstate,
  creator       TYPE      apqi-creator,
  credate       TYPE      apqi-credate,
END OF ty_apqi.

TYPES: BEGIN OF ty_apqi_aus,      
  groupid       TYPE      apqi-groupid,
  qstate        TYPE      apqi-qstate,
  creator       TYPE      apqi-creator,
  datum         TYPE      c LENGTH 10,
END OF ty_apqi_aus.

DATA: gt_apqi TYPE TABLE OF ty_apqi,
      wa_apqi TYPE ty_apqi.

DATA: gt_apqi_aus TYPE STANDARD TABLE OF ty_apqi_aus,
      wa_apqi_aus TYPE ty_apqi_aus.
Interne Tabelle füllen:

Code: Alles auswählen.

SELECT * INTO CORRESPONDING FIELDS OF TABLE gt_apqi FROM apqi
  WHERE  credate = yesterday
  AND    qstate  = 'E'.

IF sy-subrc = 0.

  LOOP AT gt_apqi INTO wa_apqi.                       
      wa_apqi_aus-groupid = wa_apqi-groupid.
      wa_apqi_aus-qstate = wa_apqi-qstate.
      wa_apqi_aus-creator = wa_apqi-creator.
      CONCATENATE wa_apqi-credate+6(2) '.' wa_apqi-credate+4(2) '.' wa_apqi-credate(4) INTO gv_datum.       "Datum formatieren
      wa_apqi_aus-datum = gv_datum.
      APPEND wa_apqi_aus TO gt_apqi_aus.
    ENDLOOP.

  PERFORM mailapqi.

ELSE.
  WRITE : / 'Keine Daten gefunden.'.
ENDIF.

CLEAR gv_datum.
Als Mail senden:

Code: Alles auswählen.

FORM MAILAPQI.

DATA: lv_html TYPE string,                  
         lt_soli TYPE soli_tab.

  CALL TRANSFORMATION z_sap_rout_apqi
  SOURCE apqi = gt_apqi_aus
  RESULT XML lv_html.

  CALL FUNCTION 'SCMS_STRING_TO_FTEXT'
  EXPORTING
    TEXT      = lv_html
  TABLES
    ftext_tab = lt_soli.

***Mailversendungs-FuBa eures Vertrauens***

COMMIT WORK.

ENDFORM.
Und eine dazugehörige XSLT-Transformation:

Code: Alles auswählen.

<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
  <xsl:output encoding="iso-8859-1" indent="yes" method="html" version="4.0"/>
  <xsl:strip-space elements="*"/>

  <xsl:template match="/">

    <xsl:element name="html">

      <xsl:element name="head">

        <xsl:element name="style">
          <xsl:text>body{font-family: Arial, sans-serif;} table{border-collapse: collapse; font-size: small;} th, td {border: 1px solid black; padding: 5px} th{background-color:#A0A0A0;} td{background-color:#D7E6f5;}</xsl:text>
        </xsl:element>

      </xsl:element>

      <xsl:element name="body">

        <xsl:element name="table">

          <xsl:element name="tr">
            <xsl:element name="th">
              <xsl:text>Group Name</xsl:text>
            </xsl:element>
            <xsl:element name="th">
              <xsl:text>Status</xsl:text>
            </xsl:element>
            <xsl:element name="th">
              <xsl:text>UserID</xsl:text>
            </xsl:element>
            <xsl:element name="th">
              <xsl:text>Erstellung</xsl:text>
            </xsl:element>
          </xsl:element>

          <xsl:for-each select="//APQI/item">

            <xsl:element name="tr">
              <xsl:element name="td">
                <xsl:value-of select="GROUPID"/>
              </xsl:element>
              <xsl:element name="td">
                <xsl:value-of select="QSTATE"/>
              </xsl:element>
              <xsl:element name="td">
                <xsl:value-of select="CREATOR"/>
              </xsl:element>
              <xsl:element name="td">
                <xsl:value-of select="DATUM"/>
              </xsl:element>
            </xsl:element>

          </xsl:for-each>

        </xsl:element>

      </xsl:element>

    </xsl:element>

  </xsl:template>
Wie die die Tabellen deklarierst und füllst ist ja wurscht.
Das Ergebnis in der Mail sieht dann so aus (andere Spalten, ist aber ja egal):
Bild

Folgende Benutzer bedankten sich beim Autor Legxis für den Beitrag (Insgesamt 5):
black_adeptralf.wenzela-dead-trousersSaskuAc4byte

( SAP ECC 6.0, NetWeaver 7.0, ohne unicode, ohne support/enhancement packages )

Seite 1 von 1

Vergleichbare Themen

6
Antw.
7823
Views
ALV Tabelle als Excel in Mail versenden
von Dyrdek » 16.01.2017 09:34 • Verfasst in ABAP® Core
5
Antw.
4476
Views
Interne Tabelle als XML-Datei versenden
von debianfan » 26.07.2017 15:47 • Verfasst in ABAP Objects®
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
4
Antw.
4358
Views
Interne Tabelle als xls Datei per E-Mail verschicken
von Niko_BC » 28.06.2018 14: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

Ü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

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.

Unbeantwortete Forenbeiträge

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