Domino 9 und frühere Versionen > ND8: Administration & Userprobleme
Aktualisierung des Homemailservers über Mail-Tempate (POSTOPEN-Event)
Sierra:
Hallo,
ich habe mal wieder ein Notes-Problem. Ich habe eine Script, was nach dem Starten den Homemailserver des Benutzers aus dem names.nsf ziehen soll und dann diesen in der Arbeitsumgebung setzten muss.
Dies soll nicht per Click auf eine Schaltfläche passieren, sondern mit PostOpen Event, aber nur einmal für die aktuelle Notes-Session:
Dies ist das Script, was per Clickt funktioniert:
--- Code: ---Declarations
Const cMailServer="IhrMailserver"
Const cMailDomain="IhreNotesDomäne"
Const cCatalogServer=""
Const cDirectoryServer=""
Const cNameView="Locations"
Const cSubject="Arbeitsumgebungen aktualisiert"
Const cAdminMail="IhrName@IhreDomain.de"
Dim ses As NotesSession
Dim pad As NotesDatabase
Dim db As notesdatabase
Dim ploc As NotesView
Dim pdoc As NotesDocument
Dim mdoc As NotesDocument
Dim rtf As NotesRichTextItem
Dim nrloc As Integer
Dim ddb As NotesDatabase
Dim persDoc As NotesDocument
Dim persView As NotesView
Dim mailfile As String
Click
Sub Click(Source As Button)
Set ses = New NotesSession
Set db = ses.currentdatabase
Set pad = ses.getdatabase("","names.nsf")
If pad Is Nothing Then
Msgbox "Kann lokales Adressbuch nicht finden."
Exit Sub
End If
Set ddb = ses.getDatabase(cMailServer,"names.nsf")
If ddb Is Nothing Then
Msgbox "Kann Adressbuch von Server "+cMailServer+" nicht finden"
Exit Sub
End If
If Not ddb.isopen Then
Msgbox "Kann Adressbuch von Server "+cMailServer+" nicht öffnen"
Exit Sub
End If
Set persView = ddb.getView("($Users)")
If persView Is Nothing Then
Msgbox "Kann View ($Users) im Verzeichnis auf Server "+cMailServer+" nicht finden"
Exit Sub
End If
Set persDoc = persView.Getdocumentbykey(ses.Effectiveusername, True)
If persDoc Is Nothing Then
Msgbox "Kann Personendokument für "+ses.Effectiveusername+" nicht finden"
Exit Sub
End If
mailfile = persdoc.mailfile(0)
Set ploc = pad.getView(cNameView)
If ploc Is Nothing Then
Msgbox "Kann Ansicht "+cNameView +" in lokalem Adressbuch nicht finden."
Exit Sub
End If
nrloc = 0
Set mdoc = db.createDocument
Set rtf = mdoc.createRichTextItem("Body")
Set pdoc = ploc.getFirstDocument
While Not pdoc Is Nothing
Print pdoc.name(0)
pdoc.MailServer = cMailServer
pdoc.Domain = cMailDomain
pdoc.CatalogServer = cCatalogServer
pdoc.DirectoryServer = cDirectoryServer
pdoc.MailFile = mailfile
'eventuell ein recalc
'Call pdoc.Computewithform(true,false)
Call pdoc.save(True,False)
Call rtf.appendText(pdoc.Name(0))
Call rtf.addnewLine(1)
nrloc = nrloc + 1
Set pdoc = ploc.Getnextdocument(pdoc)
Wend
Call rtf.appendText("Mailfile: "+mailfile)
Call rtf.addnewLine(1)
mdoc.Subject = cSubject+" "+ses.Commonusername+" ("+Cstr(nrloc)+")"
mdoc.SendTo = cAdminMail
mdoc.form = "Memo"
Call mdoc.send(False)
Msgbox Cstr(nrloc) +" Arbeitsumgebungen wurden geändert und die Administration per Mail benachrichtigt."
End Sub
--- Ende Code ---
Ich habe Click, Sub und Endsub weggeschnitten und in das PostOpen oberhalb von EndSub kopiert. Aber leider sagt er an unserschiedlichen Stellen, es wäre ein Fehler drin.
Gruss,
Micha
koehlerbv:
??
PostOpen von was? Im Mailtemplate sind sehr viele davon!
Fehler? Welche? Wo konkret?
Was konkret wurde kopiert? Welche Code steht jetzt im ominösen PostOpen Event?
??
Sierra:
Gibt es vielleicht einen besseren Ort?
Eingentlich soll das Script beim Starten des Notes-Clients oder auch bei der ersten Aktion in Mailfile ausgeführt werden, damit in der Arbeitsumgebung der Homemailserver neu gesetzt wird. Wir haben Tests diesbzgl. gemacht und bei uns funktioniert der Automatismus nicht. Lt. Dienstleister kommt dies in gewachsenen Umgebungen häufiger vor.
koehlerbv:
... und nicht eine einzige Frage beantwortet ...
ronka:
Um es nur einmal am Tag auszuführen, und damit mehrfach anlaufen zu verhindern brauchst du mehr information zu schreiben, dazu ist der Notes.ini als speicherplatz durchaus sinnvoll.
Dann sollte demnach Kontrolliert werden ob dieses bereits geschrieben würde, und wenn ja, die aktion einfach direkt beenden.
Dazu, wenn es fehler gibt, wäre es sinnvoll diese auch zu melden, und dessen text hier im forum anzugeben.. dann kann auch geholfen werden.
Aktuell sieht dieses script für mich danach aus das er im LOKALEN Names nachsieht, und dort wird es sicherlich keine user einträge finden.
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln