Domino 9 und frühere Versionen > ND6: Entwicklung
Kalenderprofil per script ändern und refreshen
fsinani:
Hallo amSonntagnixandresvorhaben Spezis,
bei diesem tollen Wetter habe ich mich einfach mal an meinen Designer gesetzt und komm hier jetzt nicht mehr weg.
Ich brauche eure Hilfe bei folgendem Problem:
Gegeben:
Eine Mailschablone 6.54 deutsch.
Der Chef möchte eine Corporate Identity Signatur einführen. Die soll bei allen gleich aussehen, aber halt natürlich mit den entsprechenden Telefonnummern und Abteilungsnamen.
Ich habe dann im Postopen der DB ein cript, welches aus ($VimPeople) das entsprechende Doc über session.username.abbreviate lädt und die ganzen benötigten Felder in das CalenderProfile des jenigen Users im Feld Signature_1 schreibt. Dieses Feld habe ich in der Maske CalendarProfile von "bearbeitbar" in "berechnet" geändert, damit keiner mehr was eigenes schreiben kann.
Durch den internen Mechanismus läuft das alles auch ganz gut, sogar wenn ich offline bin (das war der Grund, warum ich mich für den Weg mit dem CalenderProfil entschieden habe). Jedoch gibt es einen gravierenden Haken.
Änderungen im NAB (glob. Directory) werden zwar im Onlinemode sofort in das Kalenderprofil reingeschrieben, aber sie sind nicht sofort aktiv. Vermutlich werden die Informationen gecached. Wenn ich nämlichüber Werkzeuge/Vorgaben das Profil öffne und sofort mit OK wieder schliesse, ist alles in Ordnung. Ich möchte dem User aber nicht zumuten (eigentlich will der Chef das nicht!!), bei jeder Änderung, die Vorgaben öffnen und bestätigen zu müssen.
Meine Frage:
Wie refreshe ich das Calenderprofil über script, sodass der User bei starten seines Mailfiles sofort die aktuellste Info als Signatur in seinem Body sehen kann? Es muß aber im KalenderProfile geschrieben sein. Ich möchte den Weg vermeiden, über ein anderes Profil gehen zu müssen.
Vielen Dank im Voraus
fsinani
Glombi:
Du könntest mit
'... dein besiheriger Code
' ws uidoc dim...
'profiledoc ist das Backend-Dok. des Profils, das solltest Du schon am Wickel haben
set uidoc = ws.EditDocument( true, profiledoc )
call uidoc.Save
call uidoc.Close
das automatisch machen.
Andreas
fsinani:
Hallo Glombi,
danke für deine Antwort.
Das is ein Ausschnitt des Codes.
#####
Dim ws As New NotesUIWorkspace
Dim profdoc As NotesDocument
Set profdoc = db.GetProfileDocument("CalendarProfile")
call profdoc.ReplaceItemValue("Signature_1", Chr(13) & Chr(13) & Chr(13) & tmp)
'Call profdoc.Save(True,False)
Dim uiprofile As NotesUIDocument
Set uiprofile = ws.EditDocument(True, profdoc )
Call uiprofile.save
Call uiprofile.close
#####
steht, wie gesagt, im PostOpen des Datenbankscriptes.
Jetzt habe ich das Phänomen, dass ich beim öffnen der Maildb ein neues Memo erstelle und wieder schliessen will, was dann natürlich mit der Wollen SIe "senden... nur speichern...." Abfrage quittiert wird.
das Profil ist dadurch aber immer noch nicht aktiv.
fsinani
fsinani:
Hallo Glombi,
du hast mir dennoch helfen können, denn das hier:
Set uiprofile = ws.EditProfile("CalendarProfile")
call uiprofile.save
call uiprofile.close
... geht auf jeden Fall. Ich probier nochmal ob ich keiner Phatamorgana zum Opfer falle und melde mich nochmal
Vielen Dank nochmal
Edit:
Also ist alles in bester Ordnung. So genau funktioniert es. Nochmals vielen Dank, jetzt kann ich mit meiner Frau doch noch spazieren gehen :love:
fsinani:
Hallo liebe Gemeinde,
habe jetzt die Krise bekommen. Nachdem also mein Postopen Script jetzt funktioniert (zumindest bei der guten alten KACHEL - Homepage), habe ich jetzt ein dickes Problem mit einigen Usern, die die tolle "Welcome Page" verwenden. Da läuft mein Script auf einen Fehler, warscheinlich mit dem uidoc.save. Ist in diesem Kontext nicht ausführbar. Ich weiss jetzt leider nicht, was ich noch ändern kann, damit mein Postopen - Script auch bei den WelcomePage usern läuft.
jmd. von euch auch schonmal sone Erfahrung gemacht? Ich hab jetzt echt keine Lust, die ganze Programmierung wieder abzuändern?
Danke für eure Hilfe
Navigation
[0] Themen-Index
[#] Nächste Seite
Zur normalen Ansicht wechseln