Autor Thema: NotesDatabase.Title -> Database has not been opened yet  (Gelesen 7065 mal)

Offline MasterminD

  • Frischling
  • *
  • Beiträge: 30
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)

Code
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

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: NotesDatabase.Title -> Database has not been opened yet
« Antwort #1 am: 21.01.10 - 15:03:31 »
Hallo,

Den Titel welcher Datenbank?


Andreas
« Letzte Änderung: 21.01.10 - 15:10:17 von ascabg »

Offline MasterminD

  • Frischling
  • *
  • Beiträge: 30
Re: NotesDatabase.Title -> Database has not been opened yet
« Antwort #2 am: 21.01.10 - 15:11:30 »
Tja? Ich bin kein LotusScripter, deshalb.

Ich dachte mir hald, da ich mir mit dim ein NotesItem angelegt habe,

Code
Dim dbpath As NotesItem
Dim dbtitle As NotesItem

ich dieses auch mit set befüllen muss.

Code
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"

Offline ascabg

  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 3.697
  • Geschlecht: Männlich
Re: NotesDatabase.Title -> Database has not been opened yet
« Antwort #3 am: 21.01.10 - 15:17:30 »
Sorry. Fehler von mir. Ich hatte die Deklarationen der Variablen ueberlesen.

Daher nun noch mal.
Bei welcher Datenbank kommt es denn zu dem besagten Fehler?

Andreas

Offline MasterminD

  • Frischling
  • *
  • Beiträge: 30
Re: NotesDatabase.Title -> Database has not been opened yet
« Antwort #4 am: 21.01.10 - 15:25:00 »
Wenn diese Zeile ausgeführt wird

Code
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.

Offline MasterminD

  • Frischling
  • *
  • Beiträge: 30
Re: NotesDatabase.Title -> Database has not been opened yet
« Antwort #5 am: 21.01.10 - 15:57:51 »
Ich konnte es nun zum laufen bringen, indem ich diese Zeile modifiziert habe.

Code
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.

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: NotesDatabase.Title -> Database has not been opened yet
« Antwort #6 am: 21.01.10 - 16:05:51 »
Dieses Verhalten ist mir aber nicht klar, ich dachte durch "" wird der CurrentServer verwendet.

Siehe DesignerHelp: Das gilt natürlich nur, wenn der Agent auch vom Server ausgeführt wird und nicht durch den Client (der meint damit natürlich sein eigenes Datenverzeichnis!).

Bernhard

Offline MasterminD

  • Frischling
  • *
  • Beiträge: 30
Re: NotesDatabase.Title -> Database has not been opened yet
« Antwort #7 am: 21.01.10 - 16:14:50 »
OK. Nun ist es mir klar.
Danke

Offline pete_bla

  • Senior Mitglied
  • ****
  • Beiträge: 455
  • Geschlecht: Männlich
  • dot net gitz net!
Re: NotesDatabase.Title -> Database has not been opened yet
« Antwort #8 am: 21.01.10 - 21:17:53 »
Hi,
ich dachte durch "" wird der CurrentServer verwendet.
für @Funktionen gilt es schon.

für Lotus Script aber nur wie Bernhard sagt:
Siehe DesignerHelp: Das gilt natürlich nur, wenn der Agent auch vom Server ausgeführt wird und nicht durch den Client (der meint damit natürlich sein eigenes Datenverzeichnis!).

Gruss, Pete(r)
pete(r)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz