Text in Email einfügen

Getting started ... Alles für einen gelungenen Start.
12 Beiträge • Seite 1 von 1
12 Beiträge Seite 1 von 1

Text in Email einfügen

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
Hallo,

ich bin grade etwas überfordert...

Ich soll einen Text in eine Email hängen. Das sollte ja eigentlich nicht so schwer sein. :oops:

Das Programm ist schon vorhanden; Es wird eine Mail mit Anhang verschickt.
Die Mail soll nun noch einen Text bekommen.

Im Programm werden Methoden etc. für den Mailversand verwendet. :shock:
Damit habe ich bisher noch nie gearbeitet, aber irgendwann ist ja immer das erste Mal... :wink:
Ich habe nun schon ne Weile gesucht, aber nichts für einen Text gefunden.
Habt ihr eine Idee, wie es funktionieren könnte?

DankeSchön!

Viele Grüße Mamba

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


Re: Text in Email einfügen

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
mamba hat geschrieben:Ich habe nun schon ne Weile gesucht, aber nichts für einen Text gefunden.
Wird BCS genutzt (cl_bcs)?
Wenn ja dann sollte irgendwo im Coding in etwa sowas stehen:

Code: Alles auswählen.

*  Mail erstellen
      lr_document = cl_document_bcs=>create_document(
                      i_type    = 'RAW'
                      i_text    = it_mailtext[]
                      i_subject = i_subject ).

    CATCH cx_document_bcs INTO lr_cx_document_bcs.

* und an das Sendeobjekt hängen
      CALL METHOD lr_send_request->set_document( lr_document ).
Über den Parameter i_text der Methode cl_document_bcs=>create_document kannst du dein Mailtext mitgeben.

Und wirf mal einen Blick auf die Beispielreports:
BCS_EXAMPLE_1 bis BCS_EXAMPLE_6.

Und ein Blick in die Sap-Hilfe ist auch nicht verkehrt:
http://help.sap.com/saphelp_nw2004s/hel ... ontent.htm
Gruß Hendrik

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
Merci für die schnelle Antwort!
Leider gibts das Beispielprogramm bei mir nicht... :cry:


In dem Programm gibt es nur den Aufruf:
CALL METHOD cl_document_bcs=>create_from_multirelated
Hier kann ich keinen Text mitgeben.

Hm.

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
mamba hat geschrieben:Merci für die schnelle Antwort!
Leider gibts das Beispielprogramm bei mir nicht... :cry:
Okay für Multirelated gibt es einen eigenen Beispielreport:
RSSOHTMLGIF

Hoffe der existiert.
mamba hat geschrieben: CALL METHOD cl_document_bcs=>create_from_multirelated
Hier kann ich keinen Text mitgeben.
Mit der Methode cl_document_bcs=>create_from_multirelated wird ein Objekt der Klasse CL_GBT_MULTIRELATED_SERVICE übergeben.
Schau dir mal genau den Aufbau dieses Objektes in deinem Coding an. Es gibt zwei Methoden set_main_html und set_main_text.
Hier solltest du den Text mitgeben können.

Hoffe ich konnte helfen.
Gruß Hendrik

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
Also.... :oops: .....ich raff´s nicht.

Wo finde ich das? CL_GBT_MULTIRELATED_SERVICE

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
mamba hat geschrieben:Wo finde ich das? CL_GBT_MULTIRELATED_SERVICE
In deinem Coding sollte in etwa sowas stehen:

Code: Alles auswählen.

    call method cl_document_bcs=>create_from_multirelated
      exporting
        i_subject          = subject
        i_multirel_service = lo_mime_helper   "Dies ist eine Objekt vom Typ CL_GBT...
      receiving
        result             = lo_doc_bcs.
Vorher sollte in deinem Coding in etwa sowas stehen:

Code: Alles auswählen.

create object lo_mime_helper.

call method lo_mime_helper->set_main_html
  exporting
    content     = lt_soli
    filename    = 'filenamehtml'
    description = 'descriptionhtml'.

* bzw.

  call method lo_mime_helper->set_main_text
    exporting
      content     = lt_soli
      filename    = l_filename
      description = 'descriptiontext'.
Mit den SET-Methoden wird der Inhalt der Mail bestimmt, wie das genau bei dir aussieht ist mit der Glaskugel schwer zu sehen. Poste doch mal ein bischen Code, dann wird das helfen einfacher.
Gruß Hendrik

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
Gute Idee.

Ich glaube das sollte das richtige Stück Coding sein...

Code: Alles auswählen.


try.
    call method cl_document_bcs=>create_from_multirelated
      exporting
        i_subject          = subject
        i_multirel_service = lo_mime_helper
      receiving
        result             = lo_doc_bcs.
  catch cx_document_bcs .
    message e672(so) with 'bcs error while creating bcs_doc'.
    exit.
  catch cx_bcom_mime .
    message e672(so) with 'mime error while creating bcs_doc'.
    exit.
endtry.

*- create send_request
call method cl_bcs=>create_persistent
  receiving
    result = lo_bcs.

try.
    call method lo_bcs->set_document
      exporting
        i_document = lo_doc_bcs.

  catch cx_send_req_bcs .
    message e672(so) with 'bcs error in set_document'.
    exit.
endtry.

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
Zur Sicherheit vielleicht einfach mal alles...

Code: Alles auswählen.

*  HTML-Format von ASCII nach BINÄR
  CLEAR: lt_soli, lt_soli[].
  CLEAR: lt_solix, lt_solix[].

*  MIME-Helper-Klasse aufsetzen
  CREATE OBJECT lo_mime_helper.

*  Hauptdokument ist leer
  CALL METHOD lo_mime_helper->set_main_html
    EXPORTING
      content     = lt_soli
      filename    = 'filenamehtml'
      description = 'descriptionhtml'.

  lt_soli[] = tripform_html[].
  lt_solix[] = lt_soli[].


*  BDS-Dok. erzeugen
  TRY.
      CALL METHOD cl_document_bcs=>create_from_multirelated
        EXPORTING
          i_subject          = z_doc_chng-obj_descr
          i_multirel_service = lo_mime_helper
*       i_sensitivity    = 'P'                             "20061214F#BB
        RECEIVING
          result             = lo_doc_bcs.
    CATCH cx_document_bcs .
      MESSAGE e672(so) WITH 'bcs error while creating bcs_doc'.
      EXIT.
    CATCH cx_bcom_mime .
      MESSAGE e672(so) WITH 'mime error while creating bcs_doc'.
      EXIT.
  ENDTRY.

* Attachment "Reisekostennachweis" hinzufügen
  TRY.
      CALL METHOD lo_doc_bcs->add_attachment
        EXPORTING
          i_attachment_type    = 'HTM'
          i_attachment_subject = z_doc_chng-obj_descr
          i_attachment_size    = z_doc_chng-doc_size
          i_att_content_text   = lt_soli
          i_att_content_hex    = lt_solix.

    CATCH cx_document_bcs .
      MESSAGE e672(so) WITH 'bcs error while creating attachment'.

  ENDTRY.

* MIME-Format des BDS-Dok.
  DATA:  ref_mime_gen TYPE REF TO cl_sx_mime_singlepart
        ,mime_data TYPE mime_data.

* ref_mime_gen: evt. codepage aus smtp-knoten setzen
  TRY.
      CALL METHOD lo_doc_bcs->if_document_bcs~as_mime_document
        EXPORTING
          im_mime_generator = ref_mime_gen
        RECEIVING
          re_mime           = mime_data.
    CATCH cx_document_bcs .
      MESSAGE e672(so) WITH 'bcs error while getting mime-format'.
  ENDTRY.

*- create send_request
  CALL METHOD cl_bcs=>create_persistent
    RECEIVING
      result = lo_bcs.

  TRY.
      CALL METHOD lo_bcs->set_document
        EXPORTING
          i_document = lo_doc_bcs.

    CATCH cx_send_req_bcs .
      MESSAGE e672(so) WITH 'bcs error in set_document'.
      EXIT.
  ENDTRY.

* set sender
* note: this is necessary only if you want to set the sender
*       different from actual user (SY-UNAME). Otherwise sender is
*       set automatically with actual user.

  sender = cl_sapuser_bcs=>create( sy-uname ).
  CALL METHOD lo_bcs->set_sender
    EXPORTING
      i_sender = sender.


* Empfänger setzen
  DATA l_addr    TYPE adr6-smtp_addr.

  TRY.
*      Empfänger setzen
      l_addr = z_e_mail.

*      Create recipient Original
      lo_recipient = cl_cam_address_bcs=>create_internet_address(
         l_addr ).

      CALL METHOD lo_bcs->add_recipient
        EXPORTING
          i_recipient = lo_recipient.

    CATCH cx_root .
      MESSAGE e672(so) WITH 'bcs error with internet recipient'.
      EXIT.
  ENDTRY.

* send
  TRY.
*   activate send immeditiately
*   lo_bcs->set_send_immediately( 'X' ).




      CALL METHOD lo_bcs->send.
    CATCH cx_send_req_bcs .
      MESSAGE e672(so) WITH 'bcs error while sending'.
      EXIT.
  ENDTRY.

  COMMIT WORK.

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
mamba hat geschrieben:Zur Sicherheit vielleicht einfach mal alles...
Gut so, das ist der Interessante Teil:

Code: Alles auswählen.

*  MIME-Helper-Klasse aufsetzen
  CREATE OBJECT lo_mime_helper.

*  Hauptdokument ist leer
  CALL METHOD lo_mime_helper->set_main_html
    EXPORTING
      content     = lt_soli
      filename    = 'filenamehtml'
      description = 'descriptionhtml'.
 
Schau dir mal dieses Sourcestück im Debugger an.
lt_soli ist wahrscheinlich leer. Wenn du lt_soli füllst hat die E-Mail einen Text. Mit lt_soli mußt du einen HTML-fomartierten Text übergeben.

Nur Versuch macht klug, Coding ändern:

Code: Alles auswählen.

*  MIME-Helper-Klasse aufsetzen
  CREATE OBJECT lo_mime_helper.

***START neues Coding ***
DATA: ls_soli like line of lt_soli.

ls_soli = '<HTML>'.
APPEND ls_soli to lt_soli. Clear ls_soli.

ls_soli = '<HEAD>'.
APPEND ls_soli to lt_soli. Clear ls_soli.

ls_soli = '<TITLE>Mein Titel</TITLE>'.
APPEND ls_soli to lt_soli. Clear ls_soli.

ls_soli = '</HEAD>'.
APPEND ls_soli to lt_soli. Clear ls_soli.

ls_soli = '<BODY>'.
APPEND ls_soli to lt_soli. Clear ls_soli.

ls_soli = '<H1>Hello World</H1>'.
APPEND ls_soli to lt_soli. Clear ls_soli.

ls_soli = '</BODY></HTML>'.
APPEND ls_soli to lt_soli. Clear ls_soli.
*** ENDE neues Coding

*  Hauptdokument nicht mehr leer
  CALL METHOD lo_mime_helper->set_main_html
    EXPORTING
      content     = lt_soli
      filename    = 'filenamehtml'
      description = 'descriptionhtml'.

*** Aufräumen nicht vergessen
CLEAR lt_soli.
Refresh lt_soli.
Hoffe ich habe keinen Fehler eingebaut.
Gruß Hendrik

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
So, ich habe das Programm mal debuggt.
LT_SOLI ist voll mit Daten. HTML-Coding.

Der Inhalt kommt von 'tripform_html'.

Die Tabelle wird von dem Funktionsbaustein BAPI_TRIP_GET_FORM_HTML gefüllt.
= Reisekostenformular als HTML-Dokument

Hm. Dann habe ich dort für meinen eigentlichen Mailtext keinen Platz.

Ist es so überhaupt möglich einen Text in die Mail zu schreiben?

Grüße Mamba

Beitrag von JHM (Top Expert / 1188 / 1 / 195 ) »
mamba hat geschrieben:So, ich habe das Programm mal debuggt.
LT_SOLI ist voll mit Daten. HTML-Coding.
bist du dir sicher? Wenn dein Coding stimmt hast du beim debuggen an der falschen Stelle geschaut:

Code: Alles auswählen.

*  HTML-Format von ASCII nach BINÄR 
**** Hier wird lt_soli gecleart.
  CLEAR: lt_soli, lt_soli[]. 
  CLEAR: lt_solix, lt_solix[]. 

*  MIME-Helper-Klasse aufsetzen 
  CREATE OBJECT lo_mime_helper. 

**** hier sollte mein Coding hin, lt_soli ist noch leer
*  Hauptdokument ist leer 
  CALL METHOD lo_mime_helper->set_main_html 
    EXPORTING 
      content     = lt_soli 
      filename    = 'filenamehtml' 
      description = 'descriptionhtml'. 

**** hier wird lt_soli erst gefüllt
  lt_soli[] = tripform_html[]. 
  lt_solix[] = lt_soli[]. 
Noch ein Versuch?
Gruß Hendrik

Beitrag von mamba (ForumUser / 43 / 0 / 0 ) »
Ich blindes Huhn hab tatsächlich die Stelle übersehen... :roll: :oops:

...und kaum macht man es richtig, dann klappts auch!

Juhuuuuuuu! Es klappt!!!

Vielen, vielen Dank für deine Hilfe und für deine Geduld!!!

:D 8) :lol:

Danke schön!!!

Seite 1 von 1

Vergleichbare Themen

1
Antw.
494
Views
Sapscript Text einfügen
von L0w-RiDer » 25.10.2021 13:43 • Verfasst in ABAP® für Anfänger
2
Antw.
133
Views
SapScript Text einfügen
von L0w-RiDer » 20.10.2022 15:06 • Verfasst in ABAP® für Anfänger
4
Antw.
3712
Views
Tabulator in eMail-Text
von deejey » 18.03.2018 00:20 • Verfasst in ABAP® Core
2
Antw.
2086
Views
VL01N UserExit für Einfügen Text in Textobjektfeld
von markus1234 » 27.11.2018 14:18 • Verfasst in Sales and Distribution
3
Antw.
988
Views
Text einfügen in VF02 -> Dienste zum Objekt -> Persönliche Notiz
von raisa » 25.01.2021 16:00 • Verfasst in ABAP Objects®

Über diesen Beitrag


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

Aktuelle Forenbeiträge

PDF-Anzeige unter EDGE
vor 4 Tagen von jocoder 2 / 68
Etikettendruck mit SmartForms
vor einer Woche von a-dead-trousers 2 / 67

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

PDF-Anzeige unter EDGE
vor 4 Tagen von jocoder 2 / 68
Etikettendruck mit SmartForms
vor einer Woche von a-dead-trousers 2 / 67

Unbeantwortete Forenbeiträge

Zwischensumme Adobe Forms
vor 3 Wochen von Lucyalison 1 / 129
Group Items auf einer Filterbar
vor 4 Wochen von Bright4.5 1 / 164