Mail an Sap User / extern mit File aus interne Tab

für eilige Fragen

Mail an Sap User / extern mit File aus interne Tab

Postby TOMmi » Thu Sep 21, 2006 3:02 pm

Hallo,
wollte mit dem FuBa SO_NEW_DOCUMENT_SEND_API1 eine Mail an einen internen bzw. externe Mailuser schicken.

Mail schicken geht auch, wenn ich aber eine Datei anhängen will, wo die Daten aus einer internen Tabelle kommen, werden diese bis jetzt direkt in die Mail reingechrieben.
Ich möchte die Daten aber als Textfile angehängt haben.

Hat das jemand schon mal gemacht?

Thomas aus Minden
TOMmi
 

Postby Jay646 » Wed Sep 27, 2006 5:48 pm

Hallo Thomas,

schau Dir mal den FuBau SO_NEW_DOCUMENT_ATT_SEND_API1 an. Mit dem habe ich das mal probiert, habe es aber irgendwie nicht zum Laufen bekommen. Vorher musste man noch mit den FuBau LIST_FROM_MEMORY und TABLE_COMPRESS die Daten ranholen.

Es geht auch etwas anders (und auch aufwändiger):
Wenn die Transaktion im Batch läuft, kannst Du ja einen Spool mit den Daten der itab erstellen:
FuBau GET_PRINT_PARAMETERS -> g_params
NEW-PAGE PRINT ON PARAMETERS g_params NO DIALOG.
PERFORM liste. -> Deine Listausgabe
NEW-PAGE PRINT OFF.
dann mit:
- FuBau BP_FIND_JOBS_WITH_PROGRAM -> Den laufenden Job zum Report ermitteln
- Durch die Jobliste loopen und den aktiven Job (Status = R) ermitteln (Voraussetzung: der Job läuft nicht parallel)
- FuBau BP_JOB_READ -> Den aktiven Step des Jobs ermitteln, der hat dann die Spoolnummer (Feld LISTIDENT)
- FuBau RSPO_SPOOLJOB_TO_OFFICE

Ist also ein bißchen Arbeit!
Viel Spaß!
Jay646
...
...
 
Posts: 200
Joined: Tue Jan 31, 2006 2:53 pm

Postby TOMmi » Thu Sep 28, 2006 7:07 am

Hallo,
Dank für den Hinweis,
habe den FUBA auch gefunden.
Internes verschicken geht jetzt schon.
Für externes muß noch was am System gemacht werden.

Thomas aus Minden
TOMmi
 

Mail an Sap User / extern mit File aus interne Tab

Postby TOMmi » Mon Oct 02, 2006 10:25 am

Hallo,
externes versenden geht jetzt.
Leider wird beim angehängten Textfile alles in eine Zeile geschrieben.
In der Tabelle steht die Daten aber schön pro Zeile.

Wie bekommt man einen Zeilenumbruch hin?
Bzw. wo muß man die genaue Spezifikation des Files angeben?

Beim Body der Mail sieht alles gut aus.
Pro Zeile ein Eintrag, genau wie das in der Tabelle geschrieben wurde.

Thomas aus Minden
TOMmi
 

Mail an Sap User / extern mit File aus interne Tab

Postby Alva1590 » Wed Oct 04, 2006 10:19 am

Hallo,
funktioniert jetzt alles wunderbar.
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Frank1996 » Fri Oct 06, 2006 1:26 pm

Moin Thomas,

ich habe im Prinzip dasselbe Problem zu lösen. Komme aber schon beim Bedienen des FuBa nicht wirklich weiter.
Vielleicht kann ich ja an Deiner Lösung partizipieren?
Grüße aus Hamburg
Holger
Frank1996
.
.
 
Posts: 1
Joined: Fri Oct 06, 2006 1:26 pm

Postby Alva1590 » Tue Oct 24, 2006 10:53 am

Hallo Holger,
sorry das ich jetzt erst antworte, war zwei Wochen im Urlaub.
;-)

Wo liegt den genau dein Problem?
Könnte dir eventuell mal Script zuschicken.

Thomas
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Alva1590 » Fri Oct 27, 2006 3:00 pm

Hallo Thomas,

auch ich habe Ausflüge gemacht. Allerdings nur in andere ABAP-Bereiche. 8)

Das Problem stellt sich mir genau wie bei Dir anfangs beschrieben da.
Das externes Versenden funzt.
Die Daten werden jedoch ohne Anhang einfach in die mail geschrieben.
Das script könnte hilfreich sein.

Vielen Dank + Grüße aus Hamburg + schönes WE
Holger
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Script für Mailversand mit Anhang

Postby Alva1590 » Thu Nov 09, 2006 7:58 am

Hallo Holger,
Sorry dauerte etwas länger.

Hier das Script:

report z_tm_mail .
data: itcpo like itcpo,
tab_lines like sy-tabix,
zahl(2) type c,
start type i,
end type i.

types: typ_recceivers like somlreci1,
typ_document_data like sodocchgi1,
typ_object_content like solisti1,
typ_object_parb like soparbi1,
typ_packlist like sopcklsti1,
typ_content_bin like solisti1,
typ_content_txt like solisti1.

data: it_recceivers type table of typ_recceivers,
wa_recceivers like line of it_recceivers,

wa_document_data type typ_document_data,

it_object_content type table of typ_object_content,
wa_object_content like line of it_object_content,

it_object_header type table of typ_object_content,
wa_object_header like line of it_object_header,

it_object_parb type table of typ_object_parb,
wa_object_parb like line of it_object_parb,

it_packlist type table of typ_packlist,
wa_packlist like line of it_packlist,

it_content_bin type table of typ_content_bin,
wa_content_bin like line of it_content_bin,

it_content_txt type table of typ_content_txt,
wa_content_txt like line of it_content_txt.


perform send_form_via_email.


************************************************************************
* FORM SEND_FORM_VIA_EMAIL *
************************************************************************
form send_form_via_email.

clear: wa_document_data, it_content_txt, wa_content_bin, wa_packlist,
wa_object_header, wa_recceivers.
refresh: it_content_txt, it_content_bin, it_packlist,
it_object_header, it_recceivers.

* Creation of the document to be sent File Name
* wa_document_data-obj_name = 'TEST1.txt'.

* Mail Subject/ Betrefftext der im Mailbetreff erscheinen soll
wa_document_data-obj_descr = 'Betreff'.

* Mail Contents
* Mail Body, Text in der Mail, nicht der im Anhang.
* Es können auch HTML Formatierungen mit eingebracht werden.
wa_content_txt-line = 'Diese Mail wurde automatisch erstellt<BR>'.
append wa_content_txt to it_content_txt.

concatenate 'Bei Fragen wenden Sie sich an ' into wa_content_txt-line.
append wa_content_txt to it_content_txt.

wa_content_txt-line = '<BR>'.
append wa_content_txt to it_content_txt.

* Prepare Packing List
perform prepare_packing_list.

* Set recipient - email address here!!!
* Empfängermailadressen eintragen
* U für extern, B für intern
* Für interen User die Personalnummer eintragen.
wa_recceivers-receiver = 'empfänger@minden.de'.
wa_recceivers-rec_type = 'U'. " B = intern ; U = extern

* Alle die Mailadressen die diese Mail als Blindcopy erhalten sollen,
* müssen angefügt werden.
* wa_recceivers-blind_copy = 'X'.

* No Forward gilt nur für die SAP User.
* wa_recceivers-no_forward = 'X'.

append wa_recceivers to it_recceivers.

* Sending the document

call function 'SO_NEW_DOCUMENT_ATT_SEND_API1'
exporting
document_data = wa_document_data
* Übergibt Dokument in die Ausgangsbox des Senders.
put_in_outbox = 'X'
* IMPORTING
* SENT_TO_ALL =
* NEW_OBJECT_ID =
tables
packing_list = it_packlist
object_header = it_object_header
contents_bin = it_content_bin
contents_txt = it_content_txt
* CONTENTS_HEX =
* OBJECT_PARA =
* OBJECT_PARB =
receivers = it_recceivers
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.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.


endform.

************************************************************************
* Form PREPARE_PACKING_LIST
************************************************************************
form prepare_packing_list.

clear: wa_packlist, it_content_bin, wa_object_header.
refresh: it_packlist, it_content_bin, it_object_header.

describe table it_content_txt lines tab_lines.
read table it_content_txt index tab_lines into wa_content_txt.
* Größe des Maildokumentes bestimmen.
wa_document_data-doc_size = ( tab_lines - 1 ) * 255 + strlen(
wa_content_txt ).

* Creation of the entry for the compressed document
* Ab welcher Zeile der Text im Mailbody dargestellt werden soll.
clear wa_packlist-transf_bin.
wa_packlist-head_start = 1.
wa_packlist-head_num = 0.
wa_packlist-body_start = 1.
wa_packlist-body_num = tab_lines.

* Dokumenten Typ Mail Body/Header HTM / TXT /,
* gilt nicht für nicht angehängtes File.
wa_packlist-doc_type = 'HTM'.
append wa_packlist to it_packlist.

* wa_object_header = 'TEST.txt'. "'TEST.TXT'.
* append wa_object_header to it_object_header.

*File

* Binäre Daten in die Tabelle it_content_bin.
* ASCII / Texte in die Tabelle it_content_txt
* appenden.

do 3 times.
zahl = zahl + 1.
concatenate zahl ' ' into wa_content_bin.
* wa_content_bin = zahl .
* append wa_content_bin to it_content_bin.
append wa_content_bin to it_content_txt.
enddo.


wa_content_bin = 'Blödsinnstext'.
* append wa_content_bin to it_content_bin.
append wa_content_bin to it_content_txt.

describe table it_content_txt lines end.
tab_lines = tab_lines + 1. "Anzahl der Mailbody Zeilen.


* Ohne X Übertrag im ASCII Format, mit X Übertrag im Binär Format.
* Im binär Format Zeilenumbruch mit <CRLF> (hex = 0D0A).
wa_packlist-transf_bin = ' '.
* Ab welcher Zeile das Textfile anfängt.
wa_packlist-head_start = tab_lines.
wa_packlist-head_num = tab_lines.
wa_packlist-body_start = tab_lines.
* In welcher Zeile das Textfile endet.
wa_packlist-body_num = end.
* RAW überträgt im Originalformat,
* andere Möglichekeiten 'TXT' 'RTF' 'DOC' 'XLS'
wa_packlist-doc_type = 'RAW'.
* wa_packlist-obj_name = 'TEST2.txt'.

* Name der angehängten Datei, das Dateisuffix wird über den Type
* automatisch angehängt.
wa_packlist-obj_descr = 'Filename'.
* Größe des angehängten Files.
wa_packlist-doc_size = tab_lines * 255.
append wa_packlist to it_packlist.


endform.

Ich hoffe das ist verständlich.

Thomas aus Minden
Alva1590
.....
.....
 
Posts: 4387
Joined: Mon Dec 02, 2002 3:01 pm

Postby Silke1341 » Sat Nov 11, 2006 11:27 am

da dieser Thread wiederholt Ziel von SPAMmern ist, wird er jetzt gesperrt...
Silke1341
.....
.....
 
Posts: 1985
Joined: Thu Aug 19, 2004 3:20 pm


Return to Kurzfragen

Who is online

Users browsing this forum: No registered users and 17 guests