Willkommen
Gast
. Bitte
einloggen
oder
registrieren
.
08.03.21 - 23:01:51
News:
Schnellsuche:
Das Notes Forum
Lotus Notes / Domino Sonstiges
OLE/COM-Programmierung
Lotus-Notes-Vorlage via Excel-Makro aufrufen
« vorheriges
nächstes »
Seiten:
[
1
]
2
Autor
Thema: Lotus-Notes-Vorlage via Excel-Makro aufrufen (Gelesen 40402 mal)
Drehstuhlpilot
Frischling
Offline
Beiträge: 11
Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
am:
17.01.18 - 15:46:30 »
Hallo,
ich versuche seit geraumer Zeit mithilfe eines Excel-Makros, eine Mail-Vorlage in Lotus Notes (8.5.3FP6 SHF784) zu öffnen und nutze dazu folgenden Code:
Code:
Sub SendMail()
Dim Maildb As Object
Dim UserName As String
Dim MailDbName As String
Dim MailDoc As Object
Dim session As Object
Dim Recipient As String
Dim attachment As String
Set session = CreateObject("Notes.NotesSession")
Set Maildb = session.currentdatabase
Set MailDoc = Maildb.CreateDocument("", "", "Vorlage")
attachment = "<Pfad zum Anhang>"
MailDoc.Form = "Memo"
Recipient = "MaxMustermann@live.com"
MailDoc.sendto = Recipient
MailDoc.Subject = "Betreff"
MailDoc.body = "Nachrichtentext"
stAttachment = ActiveWorkbook.FullName
Set AttachME = MailDoc.CREATERICHTEXTITEM("stAttachment")
Set EmbedObj = AttachME.EMBEDOBJECT(1454, "", attachment, "stAttachment")
MailDoc.SAVEMESSAGEONSEND = True
MailDoc.SEND 0, Recipient
Set Maildb = Nothing
Set MailDoc = Nothing
Set AttachME = Nothing
Set session = Nothing
Set EmbedObj = Nothing
End Sub
Leider scheitere ich daran, dass Notes die Vorlage nicht aufrufen will. Habe schon diverse Lösungsansätze von Usern mit ähnlich gelagertem Problem ausprobiert, jedoch waren dort noch weitere andere Baustellen, sodass ich zu diesem konkreten Problem noch keine wirkliche Lösung finden konnte.
Muss die Vorlage (lokal im Client über "Werkzeuge->Vorlage->Neue Vorlage" erstellt) mit einem anderen Befehl angesteuert bzw. aufgerufen werden?
Btw: Agentenrechte nicht vorhanden.
Danke im Voraus.
Gespeichert
Tode
Moderatoren
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 6544
Geht nicht, gibt's (fast) nicht... *g*
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #1 am:
17.01.18 - 16:24:56 »
Ok.... Also erstmal ein paar Fragen:
- Willst Du eine NEUE Vorlage erstellen, oder eine vorhandene öffnen?
- Willst Du die Mail zum bearbeiten öffnen oder direkt versenden?
Gespeichert
Gruss
Torsten (Tode)
P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...
Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Drehstuhlpilot
Frischling
Offline
Beiträge: 11
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #2 am:
17.01.18 - 17:52:09 »
Die Vorlage existiert bereits und soll nur noch durch das Makro geöffnet werden.
Ursprünglich war geplant, die Mail direkt zu versenden. Falls umsetzbar, wäre es jedoch super, wenn sie nach Erstellung durch das Makro noch einmal überprüft und ggf. bearbeitet werden könnte.
Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1207
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #3 am:
17.01.18 - 18:26:18 »
Dein Code versendet die Mail, das muss ersetzt werden mit:
Code:
Dim ws As Object
Set ws = CreateObject("Notes.NotesUIWorkspace")
set mailUiDoc = ws.editDocument( true, mailDoc )
Gespeichert
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und
DomNav 2.5
/
NSE 0.11
--
Nur ein toter Bug, ist ein guter Bug!
Drehstuhlpilot
Frischling
Offline
Beiträge: 11
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #4 am:
18.01.18 - 08:07:08 »
Das klappt schonmal einwandfrei, top!
Jetzt bleibt nur noch das Problem mit der zu öffnenden Vorlage.
Gespeichert
Tode
Moderatoren
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 6544
Geht nicht, gibt's (fast) nicht... *g*
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #5 am:
18.01.18 - 08:46:33 »
Du holst Dir die Ansicht mit allen Vorlagen mittels NotesDatabase.getView( "Stationery" ).
Dann holst Du die entsprechende Vorlage aus dieser Ansicht über
NotesView.GetDocumentByKey( "Name der Vorlage")
(geht nicht, weil Ansicht nicht sortiert nach Name)
einen NotesViewNavigator und einer While- Schleife, in der Du die NotesViewEntry- Elemente prüfst, ob Sie Deinen Vorlagennamen haben.
Dann benutzt Du den Code aus dem "QueryOpendocument"- Event der Ansicht (Stationary) um aus dieser Vorlage eine neue Mail zu generieren:
Code:
Dim note As New NotesDocument(db)
Call vorlagedoc.copyallitems(note)
Call note.ReplaceItemValue("Form",vorlagedoc.Form(0))
Call note.RemoveItem("$VersionOpt")
Call note.RemoveItem("$NoPurge")
Call note.RemoveItem("ProtectFromArchive")
Call note.RemoveItem("MailStationeryName")
Call note.RemoveItem("IsMailStationery")
Call note.ReplaceItemValue("tmpSkipSignature","1")
Dann füllst Du den Empfänger und ggf. andere Daten (wie Du es in Deinem Code schon machst) und versendest das Ding über note.Send
«
Letzte Änderung: 18.01.18 - 08:48:18 von Tode
»
Gespeichert
Gruss
Torsten (Tode)
P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...
Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Drehstuhlpilot
Frischling
Offline
Beiträge: 11
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #6 am:
18.01.18 - 10:43:41 »
Okay, also mit dem NotesViewNavigator bin ich nun leicht überfordert. Wenn ich versuche, den Navigator via
Code:
Set NotesViewNavigator = NotesView.CreateViewNav
festzulegen, gibt er mir den Laufzeitfehler 91 (Objektvariable oder With-Blockvariable nicht festgelegt).
Wenn ich NotesView via
Code:
Set NotesView = NotesDatabase.getView("Stationary")
festlegen möchte, gibt er mir den Laufzeitfehler 438 (Objekt unterstützt diese Eigenschaft oder Methode nicht).
Irgendwie steh' ich auf dem Schlauch...
Gespeichert
Andrew Harder
Senior Mitglied
Offline
Geschlecht:
Beiträge: 294
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #7 am:
18.01.18 - 12:39:53 »
Also wenn Du die View schon nicht bekommst, wirst Du Dir von der nicht vorhandenen View auch keinen Navigator erstellen können.
Soweit logisch.
Leider fehlt der Rest vom Code, muss man dann halt raten.
Am besten mal den Testcode in einen Agent packen und den Debugger anwerfen.
sollte in etwa so etwas sein - fast zu 100% aus der Notes Designerhifle kopiert:
Code:
Dim session As NotesSession
Dim db As NotesDatabase
Dim view As NotesView
Dim nav As NotesViewNavigator
set session = New NotesSession
Set db = session.CurrentDatabase
Set view = db.GetView("Stationary")
Set nav = view.CreateViewNav()
Gespeichert
Andy
Tode
Moderatoren
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 6544
Geht nicht, gibt's (fast) nicht... *g*
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #8 am:
18.01.18 - 12:54:40 »
Du kennst aber schon den Unterschied zwischen Klassen (NotesDatabase, NotesView, NotesViewNavigator) und daraus instantiierten Variablen, oder?
Weil wenn nicht, dann müssten wir Dir hier den kompletten Code runtertippen und Du müsstest ihn einsetzen ohne zu verstehen, was da passiert... Das ist nicht Sinn des Forums.
Denn: Code im Auftrag zu schreiben ist mein Job (und der von vielen anderen im Forum), das werde ich nicht kostenlos im Forum anbieten.
Hilfe zur Selbsthilfe dagegen schon.
EDIT: Nur nebenbei: Dein Set MailDB = session.CurrentDatabase funktioniert nur, wenn die Mail- Datenbank zufällig die gerade geöffnete Datenbank im Client ist... Wenn Du gerade im persönlichen Adressbuch stehst, dann wird der ganze Code knallen...
Set MailDB = Session.CreateDatabase( "", "" )
Call mailDB.OpenMail()
wäre richtig...
«
Letzte Änderung: 18.01.18 - 12:57:23 von Tode
»
Gespeichert
Gruss
Torsten (Tode)
P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...
Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Drehstuhlpilot
Frischling
Offline
Beiträge: 11
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #9 am:
18.01.18 - 15:01:38 »
Also mit den Notes-Klassen kann das VBA hier leider nichts anfangen. Evtl. wurde die .dll auch noch gar nicht registriert. Aus einer Prüfung der regedit wir leider auch nichts, da keine Rechte vorhanden sind. :$
Im Folgenden dennoch mal der Code bis zur (geplanten) Erstellung des Navigators:
Code:
Dim session As Object
Dim db As Object
Dim view As Object
Dim nav As Object
set session = New NotesSession
Set db = session.GetDatabase("", "")
Call db.OpenMail
Set view = db.GetView("Stationary")
Set nav = view.CreateViewNav()
In der letzten Zeile gibt er nach wie vor den Laufzeitfehler 91. Vermutlich wegen der fehlenden library...
Gespeichert
Tode
Moderatoren
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 6544
Geht nicht, gibt's (fast) nicht... *g*
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #10 am:
18.01.18 - 15:19:00 »
Dass VBA mit den Klassen nichts anfangen kann ist vollkommen egal und normal. Mache doch bitte mal nach Call db.OpenMail ein Msgbox db.Title & " - " & db.Server & " - " & db.FilePath
Ist das wirklich die Mail- Datenbank des aktuellen Benutzers?
Ach ja: Station
a
ry ist falsch. Die Ansicht heisst Station
e
ry
Gespeichert
Gruss
Torsten (Tode)
P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...
Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Drehstuhlpilot
Frischling
Offline
Beiträge: 11
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #11 am:
18.01.18 - 16:39:05 »
Wie's aussieht läuft der Navigator nun. Die Mail-Datenbank ist auch tatsächlich die richtige.
Allerdings scheitere ich nun bereits im Ansatz bei der While-Schleife zum Prüfen der NotesViewEntry-Einträge und werde mich wohl oder übel nach einer anderen Lösung umsehen müssen.
Dennoch nochmal vielen Dank für die Hilfe und Unterstützung.
Gespeichert
Tode
Moderatoren
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 6544
Geht nicht, gibt's (fast) nicht... *g*
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #12 am:
18.01.18 - 16:53:18 »
Nicht gleich verzweifeln... Einmal gebe ich Dir noch nen "Schubs" in die richtige Richtung:
Code:
found = False
Set ve = nav.GetFirstEntry()
While found = false and not ve is Nothing
Set vorlagedoc = ve.Document
If vorlagedoc.GetitemValue( "MailStationeryName" )(0) = "Name Deiner Vorlage" Then
found = True
End If
Set ve = nav.GetNextentry(ve)
Wend
if found = True then
'- hier kommt der code, um eine Kopie zu erstellen
End If
Aber vermutlich wäre es wirklich das beste, jemanden zu engagieren... Denn von ErrorHandling, Reaktion wenn die Vorlage nicht existiert, Dokument zum bearbeiten öffnen, etc. haben wir ja überhaupt noch nicht gesprochen...
Gespeichert
Gruss
Torsten (Tode)
P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...
Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
Drehstuhlpilot
Frischling
Offline
Beiträge: 11
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #13 am:
19.01.18 - 07:46:38 »
In der Zeile
Code:
Set ve = nav.GetFirstEntry()
wird der Laufzeitfehler 438 gemeldet. Muss ve hier als was anderes als Object deklariert werden?
Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1207
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #14 am:
19.01.18 - 09:13:09 »
zeig doch mal deinen ganzen Code, nur eine Zeile ist da nicht ausreichend.
Gespeichert
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und
DomNav 2.5
/
NSE 0.11
--
Nur ein toter Bug, ist ein guter Bug!
Drehstuhlpilot
Frischling
Offline
Beiträge: 11
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #15 am:
19.01.18 - 09:42:17 »
Code:
Sub SendMail()
Dim db As Object
Dim session As Object
Dim view As Object
Dim nav As Object
Dim vorlagedoc As Object
Dim ve As Object
Set session = CreateObject("Notes.NotesSession")
Set db = session.GetDatabase("", "")
Call db.OpenMail
Set view = db.GetView("Stationery")
Set nav = view.CreateViewNav()
Set ve = nav.GetFirstEntry()
found = False
While found = False And Not ve Is Nothing
Set vorlagedoc = ve.Document
If vorlagedoc.GetitemValue("MailStationeryName")(0) = "<Vorlagenname>" Then
found = True
End If
Set ve = nav.GetNextentry(ve)
Wend
Gespeichert
jBubbleBoy
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1207
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #16 am:
19.01.18 - 09:57:23 »
OK, da eh auf das Backend-Dokument zugegriffen wird und nicht der NotesView-Index ausgewertet wird - kann man sich den NotesViewNavigator auch schenken und die Ansicht auf klassischer, einfachen Art durchlaufen, das ist bei den Mail-Vorlagen auch nicht falsch, der Code sieht dann so aus:
Code:
Dim db As Object
Dim session As Object
Dim view As Object
Dim vorlagedoc As Object
Set session = CreateObject("Notes.NotesSession")
Set db = session.GetDatabase("", "")
Call db.OpenMail
Set view = db.GetView("Stationery")
Set vorlagedoc = view.getFirstDocument
Do Until vorlagedoc Is Nothing
If vorlagedoc.getItemValue("MailStationeryName")(0) = "<Vorlage>" Then Exit Do
Set vorlagedoc = view.getNextDocument(vorlagedoc)
Loop
If Not vorlagedoc Is Nothing Then MsgBox "Vorlage: " + vorlagedoc.getItemValue("MailStationeryName")(0)
Gespeichert
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und
DomNav 2.5
/
NSE 0.11
--
Nur ein toter Bug, ist ein guter Bug!
Tode
Moderatoren
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 6544
Geht nicht, gibt's (fast) nicht... *g*
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #17 am:
19.01.18 - 10:03:45 »
Ich glaube, das Problem ist ein anderes: Ich glaube, dass VBA mit dem Set nicht zurecht kommt, was man in LotusScript ja unbedingt braucht... Probiere das mal wegzulassen... Bin mir aber nicht sicher...
Gespeichert
Gruss
Torsten (Tode)
P.S.: Da mein Nickname immer mal wieder für Verwirrung sorgt: Tode hat NICHTS mit Tod zu tun. So klingt es einfach, wenn ein 2- Jähriger versucht "Torsten" zu sagen...
Mit jedem Tag meines Lebens erhöht sich zwangsweise die Zahl derer...
... denen ich am AdminCamp ein Bier schulde... Wenn ich hier jemanden angehe: Das ist nie persönlich, sondern immer gegen die "Sparwut" der Firmen gedacht, die ungeschultes Personal in die Administration unternehmenskritischer Systeme werfen... Sprecht mich einfach am AdminCamp an, ich zahle gerne zur "Wiedergutmachung" das ein oder andere Bierchen an der Bar
jBubbleBoy
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1207
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #18 am:
19.01.18 - 10:08:17 »
Set wird in VBA genauso benötigt wie in LotusScript.
Gespeichert
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und
DomNav 2.5
/
NSE 0.11
--
Nur ein toter Bug, ist ein guter Bug!
jBubbleBoy
Gold Platin u.s.w. member:)
Offline
Geschlecht:
Beiträge: 1207
Re: Lotus-Notes-Vorlage via Excel-Makro aufrufen
«
Antworten #19 am:
19.01.18 - 10:15:15 »
Der Fehler beim NotesViewNavigator besteht in "nav.GetFirstEntry", das müsste korrekter weise "nav.GetFirst" heißen, für den Fall das ihr mit dem NotesViewNavigator weitermachen wollt
Gespeichert
Gruss Erik :: Freelancer :: Notes, Java, Web, VBA und
DomNav 2.5
/
NSE 0.11
--
Nur ein toter Bug, ist ein guter Bug!
Seiten:
[
1
]
2
« vorheriges
nächstes »
Gehe zu:
Bitte wählen Sie ein Ziel:
-----------------------------
ATNOTES TEAM
-----------------------------
=> Neuigkeiten - Wichtiges
===> Archiv
-----------------------------
HCL Notes / Domino 11+
-----------------------------
=> ND11: Administration & Userprobleme
=> ND11: Entwicklung
=> ND11: Nomad
=> HCL Domino Volt
-----------------------------
Lotus Notes / Domino 10
-----------------------------
=> ND10: Administration & Userprobleme
=> ND10: Entwicklung
-----------------------------
Lotus Notes / Domino 9
-----------------------------
=> ND9: Administration & Userprobleme
=> ND9: Entwicklung
-----------------------------
Domino 8 und frühere Versionen
-----------------------------
=> ND8: Administration & Userprobleme
=> ND8: Entwicklung
=> ND8: Entwicklung - XPages
=> ND7: Administration & Userprobleme
=> ND7: Entwicklung
=> ND6: Administration & Userprobleme
=> ND6: Entwicklung
=> Administration & Userprobleme
=> Entwicklung
-----------------------------
Lotus Notes / Domino Sonstiges
-----------------------------
=> Tipps und Tricks
=> Tools & Downloads
=> Projekt Bereich
===> Help-Desk Applikation !!Help!!
=> Java und .NET mit Notes/Domino
=> Companion Products
=> OLE/COM-Programmierung
=> Aus- und Weiterbildung
-----------------------------
Best Practices
-----------------------------
=> At Notes Best Practices
=> Diskussionen zu Best Practices
-----------------------------
Sonstiges
-----------------------------
=> Offtopic
=> Kritik & Vorschläge
=> Infrastruktur
=> Job Suche/Angebote
1 Stunde
1 Tag
1 Woche
1 Monat
Immer
Einloggen mit Benutzername, Passwort und Sitzungslänge
Powered by SMF 1.1.21
|
SMF © 2006, Simple Machines
Impressum Atnotes.de -
Powered by Syslords Solutions -
Datenschutz
| Partner: