Discussion:
Versenden bestehender Datei (App.server) per SAP-Mail
(zu alt für eine Antwort)
Alfred Bayer
2006-11-03 15:13:57 UTC
Permalink
Hallo beisammen.

Eine Kollegin steht vor der Aufgabe, eine Datei, die von einem ABAP auf den
Applicationserver gestellt wird, per E-Mail (SAPMail) automatisiert zu
versenden.

Gibt's da bereits einen passenden Funktionsbaustein dafür oder muss man das
in mehreren Schritten abhoppeln?

Wie würdet Ihr das machen?

Wir sind dankbar für alle hilfreichen Hinweise.

Alfred
w***@gmx.de
2006-11-08 09:44:11 UTC
Permalink
Post by Alfred Bayer
Hallo beisammen.
Eine Kollegin steht vor der Aufgabe, eine Datei, die von einem ABAP auf den
Applicationserver gestellt wird, per E-Mail (SAPMail) automatisiert zu
versenden.
Gibt's da bereits einen passenden Funktionsbaustein dafür oder muss man das
in mehreren Schritten abhoppeln?
Wie würdet Ihr das machen?
Wir sind dankbar für alle hilfreichen Hinweise.
Alfred
w***@gmx.de
2006-11-08 09:45:13 UTC
Permalink
Hallo Alfred,
schau Dir doch mal den Funktionsbaustein
SO_DOCUMENT_SEND_API1
(und das Beispiel dazu) an.
Mit diesem FB kannst Du sehr viel machen...
Gruß

Wolf
Post by Alfred Bayer
Hallo beisammen.
Eine Kollegin steht vor der Aufgabe, eine Datei, die von einem ABAP auf den
Applicationserver gestellt wird, per E-Mail (SAPMail) automatisiert zu
versenden.
Gibt's da bereits einen passenden Funktionsbaustein dafür oder muss man das
in mehreren Schritten abhoppeln?
Wie würdet Ihr das machen?
Wir sind dankbar für alle hilfreichen Hinweise.
Alfred
Peter Kloster
2006-11-08 17:11:29 UTC
Permalink
Post by Alfred Bayer
Hallo beisammen.
Eine Kollegin steht vor der Aufgabe, eine Datei, die von einem ABAP auf den
Applicationserver gestellt wird, per E-Mail (SAPMail) automatisiert zu
versenden.
Gibt's da bereits einen passenden Funktionsbaustein dafür oder muss man das
in mehreren Schritten abhoppeln?
Ja und Ja:-)

Der Fuba, der eine Datei per Attachment versenden kann, heißt:
SO_NEW_DOCUMENT_ATT_SEND_API1
Post by Alfred Bayer
Wie würdet Ihr das machen?
Upload, evtl. Convert und Send.
Vor einiger Zeit hatte ich mal ein Beispiel als PDF-Attachment aus
SAPscript. Es erklärt aber, wie die Mail mit Subject, Body und Receiver
aufgebaut werden muss:

*********************************************************************

*...
tables: itcpo.
*...
*--- Ausgabe als OTF
data: i_otfout like soli occurs 0 with header line.
*--- Ausgabe als PDF
data: len_out like sood-objlen,
i_pdfout like solisti1 occurs 0 with header line.

*--- fuer Mailversand
data: i_reci like somlreci1 occurs 0 with header line,
i_cotxt like solisti1 occurs 0 with header line,
i_plist like sopcklsti1 occurs 0 with header line,
i_ohead like solisti1 occurs 0 with header line,
doc_data like sodocchgi1,
outbox like sonv-flag value '',
anz1 like sy-tabix,
anz2 like sy-tabix,
object like solisti1.

*...
*... das uebliche Geraffel
*...

perform open_form.

*...
*... Verarbeitung und Fuellen des Fomrulars
*...

perform close_form.
perform convert_otf2pdf.


*-------------------------------------------------------------------*
* Formular oeffnen
*-------------------------------------------------------------------*
form open_form.

clear itcpo.

* fuellen der Spoolparameter
itcpo-tdautority = ...
itcpo-tdreceiver = sy-uname.
* ...
* ...
* ...
itcpo-tddest = .... " Drucker wegen Aufbereitung!
itcpo-tdgetotf = 'X'. " Ausgabe als Tabelle vorbereiten

call function 'OPEN_FORM'
exporting device = 'PRINTER'
dialog = ' '
form = pform " Formularname
language = sy-langu
options = itcpo
exceptions others = 7.

if sy-subrc <> 0.
* ...
endif.

endform.
*
*-------------------------------------------------------------------*
* Formular schliessen
*-------------------------------------------------------------------*
form close_form.

call function 'CLOSE_FORM'
tables
otfdata = i_otfout
exceptions others = 1.

if sy-subrc <> 0.
* ...
endif.

endform.
*
*-------------------------------------------------------------------*
* OTF nach PDF konvertieren
*-------------------------------------------------------------------*
form convert_otf2pdf.

clear: ...
refresh: ...

call function 'SX_OBJECT_CONVERT_OTF_PDF'
exporting
format_src = 'OTF'
format_dst = 'TIF' " !!!
devtype = ''
len_in = ''
importing
len_out = len_out
tables
content_in = i_otfout "OTF-Daten
content_out = i_pdfout "PDF-Daten
exceptions
err_conv_failed = 1
others = 2.

if sy-subrc <> 0.
* ...
endif.

* Empfänger bestimmen
i_reci-receiver = 'email-***@des.empfaengers'.
i_reci-rec_type = 'U'.
append i_reci.
* weitere Mailempfänger
i_reci-receiver = '***@des.empfaengers'.
i_reci-rec_type = 'U'.
append i_reci.

* Mailbody aufbauen
i_cotxt = 'Blubber 1'. append i_cotxt.
i_cotxt = 'Blubber 2'. append i_cotxt.
i_cotxt = 'Blubber 3'. append i_cotxt.
i_cotxt = 'Blubber 4'. append i_cotxt.
i_cotxt = 'Blubber 5'. append i_cotxt.

describe table i_cotxt lines anz1.
clear i_plist.
i_plist-head_start = 1.
i_plist-head_num = 0.
i_plist-body_start = 1.
i_plist-body_num = anz1.
i_plist-doc_type = 'RAW'.
append i_plist.

* Mail-Anhang aufbauen
describe table i_pdfout lines anz2.
concatenate object '.pdf' into i_ohead.
translate i_ohead to lower case.
append i_ohead.
clear i_plist.
i_plist-transf_bin = 'X'.
i_plist-head_start = 1.
i_plist-head_num = 1.
i_plist-body_start = 1.
i_plist-body_num = anz2.
i_plist-doc_type = 'PDF'.
i_plist-obj_name = object.
i_plist-doc_size = len_out.
append i_plist.

* Dokumentdaten bestimmen
doc_data-obj_name = 'URGENT'.
doc_data-obj_descr = 'TITEL'.
doc_data-sensitivty = 'P'.
doc_data-doc_size = ( anz1 - 1 ) * 255 + strlen( i_cotxt ).

* Mail mit Anhang (PDF-Datei) senden
call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
exporting
document_data = doc_data
put_in_outbox = outbox
tables
packing_list = i_plist
object_header = i_ohead
contents_bin = i_pdfout
contents_txt = i_cotxt
receivers = i_reci
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.
if sy-subrc <> 0.
* ...
endif.

endform.
*
*********************************************************************

HTH,
.pk
Peter Kloster
2006-11-08 17:23:16 UTC
Permalink
Post by Peter Kloster
Post by Alfred Bayer
Eine Kollegin steht vor der Aufgabe, eine Datei, die von einem ABAP auf den
Applicationserver gestellt wird, per E-Mail (SAPMail) automatisiert zu
versenden.
Gibt's da bereits einen passenden Funktionsbaustein dafür oder muss man das
in mehreren Schritten abhoppeln?
Ja und Ja:-)
Eine weitere Lösung bietet sich über Unix an:
- per Systemcommand ein Scricpt (sendmail) aufrufen, dass die Mail
versendet - Nachteil ist: sendmail kann keine Attachments
- Lösung: Erweiterung basteln (z.B. mit Java) und trotzdem als
Attachment versenden :-)

.pk
Jochen Hein
2006-11-08 20:23:31 UTC
Permalink
Post by Peter Kloster
- per Systemcommand ein Scricpt (sendmail) aufrufen, dass die Mail
versendet - Nachteil ist: sendmail kann keine Attachments
Da könnte man metasend einsetzen...

Jochen
--
#include <~/.signature>: permission denied
Alfred Bayer
2006-11-10 13:53:14 UTC
Permalink
Post by Peter Kloster
Post by Alfred Bayer
Hallo beisammen.
Eine Kollegin steht vor der Aufgabe, eine Datei, die von einem ABAP auf den
Applicationserver gestellt wird, per E-Mail (SAPMail) automatisiert zu
versenden.
Gibt's da bereits einen passenden Funktionsbaustein dafür oder muss man das
in mehreren Schritten abhoppeln?
Ja und Ja:-)
SO_NEW_DOCUMENT_ATT_SEND_API1
Post by Alfred Bayer
Wie würdet Ihr das machen?
Upload, evtl. Convert und Send.
Vor einiger Zeit hatte ich mal ein Beispiel als PDF-Attachment aus
SAPscript. Es erklärt aber, wie die Mail mit Subject, Body und Receiver
...
*Coding gesnippt*
...
Na, das sieht doch lecker aus :-))
Werd ich der Kollegin gleich mal in ihre Mailbox werfen.

Danke vielmals!

Alfred(o)

Loading...