Excel-Datei als eMail-Anhang verschicken

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

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

Excel-Datei als eMail-Anhang verschicken

Beitrag von Raphael ( / / 0 / 3 ) »
Hallo,

wir möchten Lagerbestände täglich (bei Bestandsänderung) an einen Kunden schicken.
Soweit kein Problem, möchte jedoch der Kunde
gerne in einem xls-format haben und dies scheint
ein Problem zu sein.

Denn SAP verschickt Dokumente im ALI Format
bzw. konvertiert das zu HTML. Nun würde
gerne ein Programm schreiben das die Daten
in xls-Format downloaded, frage mich jedoch
ob SAP dann noch fähig ist diese Datei einzulesen
und als Anhang via Mail zu verschicken.

Habe nämlich die Befürchtung das mittels VB
machen zu müssen. Dann wird es schwierig sein
das alles voll automatisch laufen zu lassen.

Hoffe jemand kann mir da ein Tipp geben.

Danke und Gruß
Raphael

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


Beitrag von Gast ( / / 0 / 3 ) »
Hi,

1. wieso sicherst du dir die liste nicht als XLS geht doch im Standart

2. wenn du dir einen report baust mit ALV/Liste hast du alles was du brauchst

gruss Thorsten

Beitrag von Raphael ( / / 0 / 3 ) »
Hallo,

danke erstmal für die Antwort.
Also das mit dem Sichern als xls-File ist
kein Problem. Kenne aber kein FB der dann
eine solche Datei als Anhang aufnimmt und über SMTP verschickt.

Wie gesagt SAP scheint nur OFT und ALI zu kennen.
ALV ist ne schöne Sache wie stelle ich jedoch
ein das automatisch eine solche Mail verschickt wird.

Kein Mensch wird täglich manuell den Leuten eine solche eMail schicken.

Gruß
Raphael

Beitrag von Gast ( / / 0 / 3 ) »
Ein Excel als Anhang zu verschicken sollte mit dem Baustein 'SO_NEW_DOCUMENT_ATT_SEND_API1' kein Problem sein. Die Frage ist eben, ob es xls sein muß, oder ob auch ein CSV-Format reicht.

siehe dazu auch:
http://www.abapforum.com/forum/viewtopic.php?t=2323

Den Baustein in einen Report hängen und als Job einplanen zu bestimmten Zeiten.
Damit hättest Du dann quasi ein 'automatisches Versenden' der mails.

Beitrag von Raphael ( / / 0 / 3 ) »
Also CSV-Format reicht vollkommen, ist ja quasi auch
Excel. Probliere es grad nur über die BCS-Schnittstelle.

Ich habe aber generell ein Verständnisproblem,
wie es funktionieren soll eine externe Datei zu
übergeben.

Alle Methoden / FB verlangen nämlich einen
binary_content, frage mich nur wie ich an den
rankommen soll..

Sorry, aber SAP hat null Doku zu der Klasse gemacht,
und verlangt das bei ab Release 6.10 diese statt
API verwendet. (Aber im Prinzip müsste es ähnlich laufen)

Beitrag von Raphael ( / / 0 / 3 ) »
problem fast gelöst. Ist eigentlich ganz einfach:

------------

send_request = cl_bcs=>create_persistent( ).

APPEND 'Test' TO text.
document = cl_document_bcs=>create_document(
i_type = 'RAW'
i_text = text
i_length = '4'
i_subject = 'Lagerbestände zum Material' ).

w_content-line = 'Test Lagerbestand'.

APPEND w_content TO text_content.

CALL METHOD document->add_attachment
EXPORTING
i_attachment_type = 'XLS'
i_attachment_subject = 'Lagerbestände SGL'
i_att_content_text = text_content.

CALL METHOD send_request->set_document( document ).

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

recipient = cl_cam_address_bcs=>create_internet_address(
'raphael.sobek@sglcarbon.de' ).

CALL METHOD send_request->add_recipient
EXPORTING
i_recipient = recipient
i_express = 'X'.

CALL METHOD send_request->send(
EXPORTING
i_with_error_screen = 'X'
RECEIVING
result = sent_to_all ).
IF sent_to_all = 'X'.
WRITE text-003.
ENDIF.

COMMIT WORK.

-----------------------------------

Beim document->add_attachment hat der immer ein binary_content probiert, es geht aber auch über text_content.

Im Gegensatz zu API gibts hier keine Packinglist.
Trotzdem scheint das mit dem XLS-Format nicht ganz
sauber zu sein, da im Gegensatz zur TXT wird der
String abgeschnitten. Statt 'Test Lagerbestand'
steht dann nur noch 'Test Lag' in der ersten Zelle.

Aber ich denke das wird sich schon lösen.

Gruß
Raphael

Beitrag von etalon (ForumUser / 19 / 0 / 0 ) »
Das gleiche Problem mit dem Versenden eines Excel-Files habe ich jetzt auch.

Bisher hatte ich einen Report der aus einem Spool-Auftrag ein PDF erstellt, die Binärdaten als E-Mail-Anhang einfügt und die E-Mail dann versendet.

Der Report kann mit dem Namen des auszuführenden Reports und der Variante via Cron täglich aufgerufen werden.

Ich hatte jetzt die Überlegung einfach in die Binärdaten die Tabellendaten mit einem Tab getrennt reinzuschreiben und die Datei einfach .xls zu benennen. Das ist das gleiche wie wenn ich eine txt-Datei anlege und dort Daten mit Tabs getrennt reinschreibe, das File in xls umbenenne und dann doppelklicke.

Was haltet Ihr von diesem Lösungsvorschlag?
Dürfte doch auch möglich sein oder? Nur weiß ich noch nicht wie ich den Tabulator in die Binärdaten bekommen soll :?:

@Raphael
Hat sich mittlerweile was gelöst? Was ist mit der "Unsauberkeit" dass der String abgeschnitten wird?
mfg etalon

Beitrag von Raphael ( / / 0 / 3 ) »
Hallo etalon,

leider immernoch nicht..
Aber du scheinst da irgendwie weitergekommen zu sein.
SAP hat folgendes Beispiel:

* add attachment to document
* BCS expects document content here e.g. from document upload
* binary_content = ...
CALL METHOD document->add_attachment
EXPORTING i_attachment_type = 'DOC'
i_attachment_subject = 'TEST'
i_att_content_hex = binary_con.

Durch welchen FB komme ich nun an den binary code ?
Wie hast du das realisiert ? Da es Probleme gibt ein
XLS-File direkt aus SAP zu erstellen, würde ich dann eine Datei vom einem Laufwerk auslesen und dann gerne
verschicken.

Gruß
Raphael

Beitrag von Gast ( / / 0 / 3 ) »
Ja mit dem PDF das habe ich schon realisiert, aber da kommen die Daten aus einem Spool-Auftrag, der in ein PDF konvertiert wird und dann habe ich die Daten gleich in einer Variablen.

Mit dem Excel da bin ich mir nicht so sicher ob das soo einfach geht.

Aber warum hast du eine Datei lokal auf dem Rechner liegen? Dann kann der Anwender die Datei doch direkt verschicken.

Also ich denke dass es möglich ist den Excel-File künstlich zu generieren. So dass du einfach einen String nimmst in den du einfach die Variablen mit Tabs getrennt rein schreibst, dann die Binärdaten an die E-Mail anhängst und die Datei einfach auf xls Enden lässt.

Ich habe das mit dem Anhang der PDF in etwa so gelöst, ich hoffe es hilft dir weiter:

Code: Alles auswählen.

* Anzahl der Tabellen-Zeilen für den Text (RAW)
  DESCRIBE TABLE objtxt LINES tab_lines.
  READ TABLE objtxt INDEX tab_lines.
  doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).

* Creation of the entry for the compressed document
  CLEAR objpack-transf_bin.
  objpack-head_start = 1.
  objpack-head_num = 0.
  objpack-body_start = 1.
  objpack-body_num = tab_lines.
  objpack-doc_type = 'RAW'.
  APPEND objpack.

* Anzahl der Tabellen-Zeilen für das Attachment
  CLEAR tab_lines.
  DESCRIBE TABLE objbin LINES tab_lines.
  objhead = 'SPOOL.PDF'.
  APPEND objhead.

* Creation of the entry for the compressed attachment
  objpack-transf_bin = 'X'.
  objpack-head_start = 1.
  objpack-head_num = 0.
  objpack-body_start = 1.
  objpack-body_num = tab_lines.
  objpack-doc_type = 'PDF'.
  objpack-obj_name = 'SPOOL'.
  objpack-obj_descr = p_report.
  objpack-doc_size = tab_lines * 255.
  APPEND objpack.

Beitrag von etalon (ForumUser / 19 / 0 / 0 ) »
^^ das war ich, war mal wieder nicht eingeloggt...
mfg etalon

Beitrag von Raphael ( / / 0 / 3 ) »
mir ist es auch lieber alles in SAP direkt zu generieren, jedoch habe ich halt das Problem mit
den Tabs.

Wollte das ursprünglich genauso wie du machen, über
den Spool und dann als HTML. Dann hiess es aber das File soll editierbar sein weil der Kunde Markierungen setzen will und somit kennzeichnen was er bestellen möchte.
(..wobei copy paste nicht gerade viel arbeit sein sollte)

Da das Business Workplace wunderbar externe Excel-Files aufnehmen kann und dann als Anhang verschicken,
wollte ich es auf diesem Wege probieren.
Da ist nun das Problem an den binary code zu kommen.

... ich glaube ich mach das nun doch als HTML dafür
lohnt der Aufwand irgendwie nicht

Beitrag von etalon (ForumUser / 19 / 0 / 0 ) »
Zu dem Tabs sind hier im Forum auch noch ein paar Themen vorhanden. Such am besten mal nach "Excel" oder "Tabs" ;-)

Wenn das so geht, sag mal bescheid. Bis jetzt hab ich noch nicht den Auftrag bekommen das zu programmieren :wink:
mfg etalon

Es geht !!

Beitrag von Raphael ( / / 0 / 3 ) »
Es geht !!! Die Klasse cl_abap_char_utilities definition ist richtig gut !

Damit kann ich Zeilenumbruch, Tabs uvm. übergeben.
Der Rest is somit ganz easy :D

Seite 1 von 1

Vergleichbare Themen

25
Antw.
18138
Views
Interne Tabelle als Excel-Anhang verschicken
von Sandra » 06.04.2005 17:23 • Verfasst in ABAP® für Anfänger
1
Antw.
2137
Views
email verschicken mit Bild
von LosPablos » 17.11.2005 13:35 • Verfasst in Web-Dynpro, BSP + BHTML
2
Antw.
3078
Views
Smartform als PDF im Email verschicken
von Kleenmex » 08.06.2007 11:55 • Verfasst in ABAP Objects®
3
Antw.
5496
Views
Smartform in PDF umwandeln und per Email verschicken
von Alpha » 04.12.2008 14:58 • Verfasst in ABAP® für Anfänger
1
Antw.
1984
Views
Report als PDF erzeugen und per Email verschicken
von godevilgo » 04.04.2006 14:55 • Verfasst in ABAP® Core

Ü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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1740
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2295

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

Hilfe zum FB MATERIAL_MAINTAIN_DARK
Gestern von black_adept gelöst 8 / 1740
HR-Entgeltnachweis
vor 2 Tagen von ChrisB 4 / 2295

Unbeantwortete Forenbeiträge

Export von Spools in XLSX
vor 4 Tagen von abapamateur 1 / 287
Feldberechnung ME32K
vor einer Woche von ZF_SAPler 1 / 878
MS-Word als Editor
letzen Monat von tekko 1 / 4386