Lotus Notes / Domino Sonstiges > OLE/COM-Programmierung

visual basic script – email generieren mit Anhang – Lotus Notes „Neues Nachricht

(1/3) > >>

JJone:
Hello @all,

unser Vertrieb soll zukünftig Auftragsbestätigungen auch per Email ( PDF-Anhang ) versenden können.

Vorgehensweise:

Beim Drucken der Auftragsbestätigung ( aus unserem ERP-System ) wird eine PDF-Datei erzeugt, die
in einem speziellen Verzeichnis abgelegt wird. ( z.b. Auftragsbestätigung1910091448.pdf ). Anschließend kann ich eine vbs-Datei ( z.b notes1910091448.vbs ) erzeugen, die bei dem Mitarbeiter den installierten Lotus-Notes-Client anspricht und ein neues Nachrichtenfenster mit dem entsprechenden Anhang öffnet. (Auftragsbestätigung1910091448 ).

Ich habe keinerlei Erfahrung in der Programmierung mit Lotus Notes und vbs. Ich habe mir am WE
mal ein Redbook von ibm runtergeladen und mich mal ein bisschen eingelesen ( Front-End-User-Interface, Back-End-Objects usw. ) und folgenden Code zusammenbastelt. ( aus Redbook + Internet )

Soweit funktioniert es auch. Es öffnet sich eine neues Nachrichtenfenster. Aus unserem ERP-System
wird eine vbs-Datei mit folgendem Code erzeugt ( siehe unten ).

Problem:

 > der Emailanhang wird leider vor den Text ( Hier kommt der Text  ) eingefügt, dieser sollte
    aber nach dem Text eingefügt werden. ( siehe Anhang )

>  Im Notes-Client haben wir unter den Vorgaben einen Platzhalter für unsere Signatur hinterlegt.
    ( siehe Anhang ). Dieser Platzhalter ( Variable) sollte natürlich auch nach dem eigentlichen Text
     stehen. Dies ist leider nicht so. ( siehe Anhang. )

Für Eure Hilfe sag ich schon mal Danke.

Über Code-Verbesserungen und Erklärungen würde ich mich freuen, so kann ich auch noch was
dazulernen.


Dim maildb    'As Object' 'Die Maildatenbank
Dim doc    'As Object' 'Maildokument
Dim attachme    'As Object' 'Anhang  Richtext
Dim session    'As Object' 'Notes Session
Dim embedobj    'As Object' 'Eingebettest Objekt
Dim ws    'AS Object ‘ Front-End-User-Interface

set  session = CreateObject("Notes.NotesSession")
set  maildb  = Session.GetDatabase("","")
maildb.OpenMail
    
set doc = maildb.CreateDocument
doc.Form = "memo"
doc.sendto = "hans.mustermann@gmx.de"
doc.Subject = "Auftragsbestätigung"
doc.body = "Hier kommt der Text"

set attachme = doc.CreateRichTextItem("Attachment")
set embedobj = attachme.EmbedObject(1454, "", "C:\Temp\Auftragsbestätigung.pdf", "")

set ws = CreateObject("Notes.NotesUIWorkspace")
ws.EditDocument(True, doc).GotoField("BODY")

Fedaykin:
Hallo JJone

Hier so müsste klappen:

Dim maildb    'As NotesDatabase' 'Die Maildatenbank
Dim doc    'As NotesDocument' 'Maildokument
Dim attachme    'As NotesRichTextItem' 'Anhang  Richtext
Dim session    'As NotesSession' 'Notes Session
Dim embedobj    'As NotesEmbeddedObject' 'Eingebettest Objekt
Dim ws    'AS NotesUIWorkspace' 'Front-End-User-Interface
dim profile 'As NotesDocument
dim rtsignature 'As NotesRichTextItem
dim rtBody 'As NotesRichTextItem
dim bolSignaturEnabled 'As Boolean
dim uidoc 'As NotesUIDocument

set  session = CreateObject("Notes.NotesSession")
set  maildb  = Session.GetDatabase("","")
maildb.OpenMail

set doc = maildb.CreateDocument
doc.Form = "memo"
doc.sendto = "hans.mustermann@gmx.de"
doc.Subject = "Auftragsbestätigung"

set rtBody = doc.CreateRichTextItem("body")
set attachme = doc.CreateRichTextItem("attachment")
set embedobj = attachme.EmbedObject(1454, "", "C:\Temp\test.vbs", "")
rtBody.appendText "Hier kommt der Text"
rtBody.addnewline 2

'Mailbox Einstellungen

set profile=maildb.getprofiledocument("CalendarProfile")

'Uns interessiert ob Signatur verwendet wird
if profile.GetFirstItem("EnableSignature").Text="1" then
   'Signatur wird verwendet
   bolSignaturEnabled=True
   'Signatur auslesen
   set rtsignature=profile.getfirstitem("Signature_Rich")
   If rtsignature.Type = 1 Then
      'dranhängen
      rtBody.appendrtitem rtsignature
      'Zeilenumschaltungen
      rtBody.addnewline 2
   end if

   'Nun schalten wir Signatur aus!
   profile.EnableSignature=""
   profile.save false,false
end if

'Attachment anhängen
rtBody.appendrtitem attachme

'RichTextItem mal Updaten
rtBody.update

'RTItem mit temp. Anhang entfernen
attachme.remove

set ws = CreateObject("Notes.NotesUIWorkspace")
set uidoc=ws.EditDocument(True, doc)
uidoc.GotoField "BODY"

'Haben wir Signatur etwa ausgeschalten
if bolSignaturEnabled then
   'Dann wieder ein ;-)
   profile.EnableSignature="1"
 
   profile.save false,false
end if

Gruss
Remo

JJone:
Hallo Remo,

vielen Dank für die Nachricht und deine Unterstützung.
Ich werde den Code morgen mal genauer anschauen und mir die Beutung
der einzelnen Methoden und Befehle nachlesen.

Ich habe deine Programmierung mal ausprobiert.

Jedoch erhalte ich folgendes Erbenis ( siehe Anhang ).

Gibt es vielleicht die Möglichkeit, dass ich den Bodyinhalt lösche und anschließend
den Text und die Variable für die Signatur setzte. ?

Gruß Jürgen

Fedaykin:
Hallo Jürgen

War noch kleiner Fehler drinnen. Habe Code korrigiert und Fehler mit Kommentar gekennzeichnet (habe zweimal bei Signature das e vergessen).  :)

Gruss
Remo

JJone:
Hallo Remo,

vielen Dank nochmals für deine Unterstützung.

Die Signatur wird nun hinter den Text angehängt leider, aber nicht der
Anhang.

Zusätzlich erscheint gelegentlich, wenn die vbs-Datei merhmals hintereinander
ausgeführt wird, eine Windows-Script-Host-Fehlermeldung.

Kannst du mir da weiterhelfen ?

Gruß Jürgen

Das Verhalten habe ich beim Notes Client 8.5.1 und 8.5

Navigation

[0] Themen-Index

[#] Nächste Seite

Zur normalen Ansicht wechseln