Hallo
Ich habe einen Agent zusammengestellt, der folgendes LotusScript ausführt.
Er soll MailArchiv Datenbanken Titel renamen.
Dazu liest er aus einer Stammdaten DB (in der befindet sich auch dieser Agent) den Pfad/Filename zum Archiv DB und den zu verwendenden Titel aus.
Das funktioniert auch soweit.
Jedoch kann ich den Titel dieser DB nicht ändern, da die Meldung "Database ... has not been opened yet" erscheint.
Was mache ich falsch?
Danke für eure Hilfe
(Durch Suchen im Forum bin ich nicht schlauer geworden, Google half mir auch nicht weiter)
Dim session As New NotesSession
Dim db As NotesDatabase
Dim collection As NotesDocumentCollection
Dim doc As NotesDocument
Dim dbpath As NotesItem
Dim dbtitle As NotesItem
Set db = session.CurrentDatabase
Set collection = db.UnprocessedDocuments
Set doc = collection.GetFirstDocument()
While Not(doc Is Nothing)
Set dbpath = doc.GetFirstItem( "ArchiveDb" )
Set dbtitle = doc.Getfirstitem( "ArchiveDatabaseTitle" )
'MessageBox dbpath.Text
'MessageBox dbtitle.Text
Dim moddb As New NotesDatabase( "", dbpath.Text )
Call moddb.Open("", dbpath.Text)
MessageBox moddb.FileName,, "DB File Name"
moddb.Title = dbtitle.Text
MessageBox moddb.Title,, "DB Title"
Set doc = collection.GetNextDocument(doc)
Wend
Tja? Ich bin kein LotusScripter, deshalb.
Ich dachte mir hald, da ich mir mit dim ein NotesItem angelegt habe,
Dim dbpath As NotesItem
Dim dbtitle As NotesItem
ich dieses auch mit set befüllen muss.
Set dbpath = doc.GetFirstItem( "ArchiveDb" )
Set dbtitle = doc.Getfirstitem( "ArchiveDatabaseTitle" )
Für Verbesserungen bin ich aufgeschlossen :)
Aber soweit funktioniert es ja. Ich kann mir den DBName (NotesDatabase.DBName) ausgeben lassen. Nur das NotesDatabase.Titel will nicht.
Der Get Aufruf bring einen leeren String zurück und der Set Aufruf eben die beschriebene Meldeung "... not been opened yet"
Wenn diese Zeile ausgeführt wird
moddb.Title = dbtitle.Text
Bei der DB, von der der Titel geändert werden soll, handelt es sich um eine MailArchive DB mit einer R7 Schablone.
Ich konnte es nun zum laufen bringen, indem ich diese Zeile modifiziert habe.
Dim moddb As New NotesDatabase( "", dbpath.Text )
Gibt man hier dezidiert den Server an, auf dem die zu öffnende DB liegt, funktionierts. Obwohl Agent und die zu öffnende DB auf dem gleichen sind.
Dieses Verhalten ist mir aber nicht klar, ich dachte durch "" wird der CurrentServer verwendet.