Mail-Versand mit bestehender TIF-Datei

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

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

Mail-Versand mit bestehender TIF-Datei

Beitrag von Chilledkroete (ForumUser / 42 / 5 / 0 ) »
Hallo zusammen,

seit einigen Tagen befasse ich mich mit der Möglichkeit eine Email zu versenden,
an die sich eine bestehende TIF-Datei anhängen lässt.

Der Funktionsbaustein SO_NEW_DOCUMENT_ATT_SEND_API1 ist mir natürlich bekannt und bereits in Verwendung.
Ein genereller Email-Versand ist also bereits möglich.
Ich habe es unter anderem geschafft eine Datenbank in eine CSV-Datei umzusetzen und als Anhang zu versenden.
(Bringt an dieser Stelle natürlich nichts)

Nun möchte ich, wie schon oben angedeutet, eine sich auf einem Netzwerklaufwerk befindende TIF-Datei anhängen und mit versenden.

Bislang ist es mir gelungen, einen Funktionsbaustein zu schreiben, der den Pfad der Datei ermittelt.
Zudem fügt er die TIF-Datei per Markierung der entsprechenden Zeile (ALV-Grid) an den Pfad an und übergibt den gesamten Pfad an eine Variable.

Nun muss nur noch der Upload dieser Datei erfolgen.
Es würde mich freuen, wenn sich jemand meinem Problem zuwenden könnte.

Eventuell gibt es dafür ja einen weiteren Baustein oder jemand hat etwas in Petto.

Ich habe natürlich etliche Beiträge hier und in anderen Foren durchforstet (...)

VG,
Hendrik

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


Re: Mail-Versand mit bestehender TIF-Datei

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
hi!

Läuft der Appl.Server unter Windows oder Linux/Unix?

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: Mail-Versand mit bestehender TIF-Datei

Beitrag von Chilledkroete (ForumUser / 42 / 5 / 0 ) »
Hallo,

erst einmal vielen Dank für Deine schnelle Antwort!

Der Pfad setzt sich unter Unix zusammen, also /misc/**/**/

Re: Mail-Versand mit bestehender TIF-Datei

Beitrag von black_adept (Top Expert / 4080 / 125 / 934 ) »
Hallo Hendrik,

1.) Läuft das Programm im Hintergrund oder ist es via GUI mit dem Frontend verbunden?

2a) - Falls im Backend: Kannst du auf das Netzlaufwerk vom SAP heraus zugreifen ( open dataset //servername/pfad/...usw.../filename.tif for input in binary mode )?
- Falls ja: benutze o.a. open dataset
- Falls nein: Hier wird's jetzt schwieriger. Möglichkeiten wären Zugriff via FTP ( falls möglich ) oder die Basis soll das Netzlaufwerk mit dem SAP verbinden und gehe zu "2a) Falls ja"

2b) - Falls im Frontend: Kannst du auf das Netzlaufwerk via Windows Explorer zugreifen?
- Falls ja: Benutze cl_gui_frontend_services=>gui_upload
- Falls nein: Lass dir die Berechtigung geben und gehe zu "2b) Falls ja"
live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Mail-Versand mit bestehender TIF-Datei

Beitrag von Chilledkroete (ForumUser / 42 / 5 / 0 ) »
Hallo black_adept,

vielen Dank für Deine Nachricht.

Es ist so, dass ich ein Dynpro mit einem Custom-Container habe.

In dem Custom-Container wird mit Hilfe von Selektions-Parametern ein ALV-Grid dargestellt.
Man markiert eine Zeile und drückt auf den Button "Send".

Daraufhin wird derzeit der Unix-Pfad der Datei gelesen und in eine Variable gespeichert.
Nun soll die Datei per Anhang versendet werden. - also im Hintergrund.

Ich werde deinem Hinweis einmal folgen.
In diesem Sinne schon mal vielen Dank!

Re: Mail-Versand mit bestehender TIF-Datei

Beitrag von Chilledkroete (ForumUser / 42 / 5 / 0 ) »
Okay, an sich klappt das zwar soweit ..

Allerdings bin ich gerade etwas überfragt, an welcher Stelle sich die Datei nun befindet.

"OPEN DATASET lv_file_name FOR INPUT IN BINARY MODE" ---> lv_file_name beinhaltet dabei den Pfad incl. Datei.tif

Wie bekomme ich nun die Datei in einen Email-Anhang und am besten noch mit dem o.g. FuBa :)
Kannst Du mir an dieser Stelle noch weiter auf die Sprünge helfen?

Gruß, Hendrik

Re: Mail-Versand mit bestehender TIF-Datei

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »

Code: Alles auswählen.

data: ld_xstring type xstring.
READ DATASET lv_file_name INTO ld_xstring.
CLOSE DATASET lv_file_name.
Damit hast du die Datei im Speicher.

In die Tabellarische Form kriegst du das Ganze mithilfe meines SPLIT für BYTE.

lg ADT

Folgende Benutzer bedankten sich beim Autor a-dead-trousers für den Beitrag:
Chilledkroete

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: Mail-Versand mit bestehender TIF-Datei

Beitrag von black_adept (Top Expert / 4080 / 125 / 934 ) »
a-dead-trousers hat geschrieben:...

In die Tabellarische Form kriegst du das Ganze mithilfe meines SPLIT für BYTE.

lg ADT
Die Methode von adt ist sehr schön allgemein. Für den Mailvesand kannst du aber auch den SAP-Standard verwenden, da für Attachments üblicherweise eine Übergabetabelle mit Zeilenstruktur SOLIX erwartet wird.
Und für das Umwandeln in SOLIX-Tabellen stellt SAP netterweise die Klasse cl_bcs_convert zur Verfügung. ( Und für ältere Systeme die diese Klasse noch nicht haben gibt es alternativ den FuBa "SCMS_XSTRING_TO_BINARY" )

Folgende Benutzer bedankten sich beim Autor black_adept für den Beitrag:
Chilledkroete

live long and prosper
Stefan Schmöcker

email: stefan@schmoecker.de

Re: Mail-Versand mit bestehender TIF-Datei

Beitrag von Chilledkroete (ForumUser / 42 / 5 / 0 ) »
Dankeschön beiderseits :)

Ich werde morgen früh die Vorschläge einmal implementieren und ein Feedback geben.
Ein "Danke" an euch beide ;)

Re: Mail-Versand mit bestehender TIF-Datei

Beitrag von a-dead-trousers (Top Expert / 4394 / 223 / 1182 ) »
black_adept hat geschrieben:Die Methode von adt ist sehr schön allgemein. Für den Mailvesand kannst du aber auch den SAP-Standard verwenden, da für Attachments üblicherweise eine Übergabetabelle mit Zeilenstruktur SOLIX erwartet wird.
Und für das Umwandeln in SOLIX-Tabellen stellt SAP netterweise die Klasse cl_bcs_convert zur Verfügung. ( Und für ältere Systeme die diese Klasse noch nicht haben gibt es alternativ den FuBa "SCMS_XSTRING_TO_BINARY" )
Tja, ich mach sowas gerne selber :P
Lernt man auch gleich ein bisserl was.
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: Mail-Versand mit bestehender TIF-Datei

Beitrag von Chilledkroete (ForumUser / 42 / 5 / 0 ) »
Guten Morgen zusammen,

eure Vorschläge habe ich soweit implementiert.

Da ich auf einem reinen Entwicklungssystem entwickle, weiß ich leider nicht, inwieweit dies die Funktionalität beeinträchtigt.

Code: Alles auswählen.

CALL METHOD grid1->get_selected_rows "[i]Erkennt die im ALV-Grid markierte Zeile für die Erkennung der eigentl. Datei[/i]
        IMPORTING
          et_row_no = lt_row_no.

      LOOP AT lt_row_no

        INTO ls_test.

        READ TABLE gt_zebghprot ASSIGNING <ls_test> INDEX ls_test-row_id.

        IF sy-subrc = 0.

          LOOP AT lt_filename
           
              INTO ls_filename.
              ls_filename-fileintern = <ls_test>-dokid.

          ENDLOOP.

          CALL FUNCTION 'FILE_GET_NAME' "[i]Setzt den entsprechenden Dateipfad zusammen.[/i]
            EXPORTING
              logical_filename = 'ZE_ABLESUNG'
              parameter_1      = 'SER_Documente'
              parameter_2      = <ls_test>-dokid
            IMPORTING
              emergency_flag   = lv_emergency_flag
              file_format      = lv_file_format
              file_name        = lv_file_name
            EXCEPTIONS
              file_not_found   = 1
              OTHERS           = 2.

          OPEN DATASET lv_file_name FOR INPUT IN BINARY MODE. "[i]Eure Methodik für die Umwandlung![/i]
          READ DATASET lv_file_name INTO ld_xstring.
          CLOSE DATASET lv_file_name.

          CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'  "[i]Ich habe mich für die Funktion entschieden.[/i]
            EXPORTING
              buffer                = ld_xstring
*             APPEND_TO_TABLE       = ' '
*           IMPORTING
*             OUTPUT_LENGTH         =
            TABLES
              binary_tab            = t_contents_bin
                    .
          PERFORM z_mail. "[i]Regelt die Zusammensetzung für den Mailversand - siehe unten...[/i]

        ENDIF.
      ENDLOOP.
________________________

Code: Alles auswählen.

FORM z_mail.

  DATA: e_document_data LIKE sodocchgi1.
  DATA: t_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE.
  DATA: t_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE.
  DATA: t_object_header LIKE solisti1 OCCURS 0 WITH HEADER LINE.
  DATA: t_contents_txt LIKE solisti1 OCCURS 0 WITH HEADER LINE.
* DATA: t_contents_bin LIKE solisti1 OCCURS 0 WITH HEADER LINE. "[i]Wegen DATASET oben definiert.[/i]
  DATA: tab_lines LIKE sy-tabix.


* [i]Daten für Mail[/i]
  e_document_data-obj_name = 'Test1'.
  e_document_data-obj_descr = 'Testx'.

  t_contents_txt = 'Sehr geehrte Vertrieb-Mitarbeiter, ...'.
  APPEND t_contents_txt.
  t_contents_txt = 'Hier der Text'.
  APPEND t_contents_txt.

*[i]Zählen der Zeile von t_contents_txt[/i]
  DESCRIBE TABLE t_contents_txt LINES tab_lines.
  READ TABLE t_contents_txt INDEX tab_lines.

  t_packing_list-head_start = 1.
  t_packing_list-head_num = 0.
  t_packing_list-body_start = 1.
  t_packing_list-body_num = tab_lines.
  t_packing_list-doc_type = 'RAW'.
  APPEND t_packing_list.

[i]*  t_contents_bin = lv_file_name.
*  APPEND t_contents_bin.[/i]

  DESCRIBE TABLE t_contents_bin LINES tab_lines.

  t_packing_list-transf_bin = 'X'.
  t_packing_list-head_start = 1.
  t_packing_list-head_num = 1.
  t_packing_list-body_start = 1.
  t_packing_list-body_num = tab_lines.
  t_packing_list-doc_type = 'tif'.
  t_packing_list-obj_name = 'ANLAGE'.
  t_packing_list-doc_size = tab_lines * 255.
  t_packing_list-obj_descr = 'Datei'.

  APPEND t_packing_list.


  t_receivers-receiver = 'max.mustermann@mail.de'.
  t_receivers-rec_type = 'U'.
  APPEND t_receivers.

  CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
    EXPORTING
      document_data                    =  e_document_data
*                  PUT_IN_OUTBOX                    = ' '
*                IMPORTING
*                  SENT_TO_ALL                      =
*                  NEW_OBJECT_ID                    =
    TABLES
      packing_list                     = t_packing_list
      object_header                 = t_object_header
      contents_bin                    = t_contents_bin
      contents_txt                    = t_contents_txt

      receivers                        = t_receivers
                  EXCEPTIONS
                    too_many_receivers               = 1
                    document_not_sent                = 2
                    document_type_not_exist          = 3
                    operation_no_authorization       = 4
                    parameter_error                  = 5
                    x_error                          = 6
                    enqueue_error                    = 7
                    OTHERS                           = 8.

  COMMIT WORK.

ENDFORM.                    "z_mail
___________________________
Es würde mich unglaublich freuen, wenn sich jemand einmal mein Coding anschauen könnte.
Da ich nur ungefähr weiß, was bei dem Dataset wirklich abläuft, denke ich, dass ich in der Form-Routine dementsprechend etwas
falsch gesetzt habe.


EDIT: Laut Debugger wird ld_xstring nicht gefüllt...

Re: Mail-Versand mit bestehender TIF-Datei

Beitrag von Chilledkroete (ForumUser / 42 / 5 / 0 ) »
Hat sich schon soweit erledigt.

Ich habe eine Datei angesprochen, die auf dem Laufwerk nicht mehr vorhanden war.

Vielen Dank ihr zwei !

Seite 1 von 1

Vergleichbare Themen

1
Antw.
6265
Views
Versand einer E-Mail aus SAP mit PDF Anhang und E-Mail Text
von Haubentaucher » 31.08.2006 07:28 • Verfasst in ABAP® Core
5
Antw.
1801
Views
E-Mail Versand
von dkast » 24.10.2017 14:25 • Verfasst in ABAP® für Anfänger
10
Antw.
5547
Views
E-Mail Versand mit Sonderzeichen
von Tipp » 30.09.2014 11:52 • Verfasst in ABAP Objects®
2
Antw.
1851
Views
Mail Versand Formular
von SAPDIDI2 » 23.01.2007 09:38 • Verfasst in ABAP® für Anfänger
23
Antw.
4886
Views
Batch-Job E-Mail Versand
von Bright4.5 » 21.04.2021 14:15 • 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

aRFC im OO-Kontext
vor 4 Wochen von ralf.wenzel 1 / 1574
Hilfe bei SWEC/SWE2
letzen Monat von retsch 1 / 8181