Autor Thema: Aus Vorlage erstellten Ordner öffnen  (Gelesen 3990 mal)

Offline Barbara

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Weiblich
Aus Vorlage erstellten Ordner öffnen
« am: 06.08.09 - 15:38:26 »
Hallo zusammen,
ich beziehe mich auf folgenden Thread: http://atnotes.de/index.php/topic,33592.0.html

Will Ihn nicht wieder hochholen, da es nun um das weiterführende Problem geht.

Also,
- View, dessen Gestaltung verwendet werden soll, als Objekt holen
- über NotesView.UniversalID und NotesDatabase.GetDocumentByUNID den View als Dokument-Objekt holen
- Dokument mit notesDocument.CopyToDatabase kopieren
- entsprechende Felder in dem Dokument ändern und speichern

funktioniert. Ordner ist da, kann angesprochen und gefüllt werden. Jetzt möchte ich ihn auch im Frontend geöffnet haben, dabei laufe ich an die Wand.
Habe mit uidatabase.close und ws.opendatabase rumprobiert, bekomme immer die Meldung:
Ungültiges oder nicht vorhandenes Dokument - und zwar immer dann, wenn ich den Ordner öffnen will.

Wie schließt und öffnet man eine Datenbank richtig? Oder anders gefragt, wie erkläre ich der Datenbank, dass sie den Ordner sehr wohl besitzt?

Gruß

Barbara

Driri

  • Gast
Re: Aus Vorlage erstellten Ordner öffnen
« Antwort #1 am: 07.08.09 - 08:08:50 »
Wie versuchst Du denn, den Ordner zu öffnen ?

Offline Barbara

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Weiblich
Re: Aus Vorlage erstellten Ordner öffnen
« Antwort #2 am: 07.08.09 - 08:56:01 »
Hallo Ingo,
ich poste mal das ursprüngliche script.

If key<>"" Then
         'Ordner leeren , wenn nicht da  neu erstellen
      viewname="Kalender_" & key
      Set view=db.getView(viewname)
      If Not view Is Nothing Then
         Set vc = view.AllEntries
         Call vc.RemoveAllFromFolder(view.Name)
      Else
         ID=template.UniversalID
         Set viewdoc=db.GetDocumentByUNID(ID)
         Set newdoc= viewdoc.CopyToDatabase(db)
         Call newdoc.ReplaceItemValue("$Name",viewname)
         Call newdoc.ReplaceItemValue("$Title",viewname)
         Call newdoc.Save(True,True)
         Set view=db.getView(viewname)
      End If
      
   'Ordner neu befüllen
      Suche= { @contains(FirmaStandort;"} & key & {") & Ereignis != "3"}
      Set col=db.Search(Suche,Nothing,0)
      Call col.PutAllInFolder( view.name)
      
      
      Call ws.OpenFrameSet("Root")
      Call ws.settargetframe("RootMain")
      Call dbui.OpenView(viewname)
      Call ws.ViewRefresh
   End If


später habe ich dann vor und nach dem Rahmen setzten versucht mit dbui.close etc. die Datenbank zu schließen und wieder zu öffnen - da bin ich dann gescheitert. Habe dann irgendwann den Überblick verloren.

Ich hoffe auf den berühmten Schubs von Euch   :)

Gruß
Barbara

Driri

  • Gast
Re: Aus Vorlage erstellten Ordner öffnen
« Antwort #3 am: 07.08.09 - 09:40:38 »
Weil mir das irgendwie bekannt vorkam, habe ich mal in der KB gesucht :

Folders created using back-end LotusScript methods do not appear in database

Da scheinst Du mit leben zu müssen. Angeblich soll ein Reopen der Datenbank helfen.


Offline Barbara

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Weiblich
Re: Aus Vorlage erstellten Ordner öffnen
« Antwort #4 am: 07.08.09 - 09:45:23 »
genau, soweit war ich auch schon und hier liegt mein Problem:
wie geht das mit dem "Reopen"

hier meine Bemühungen, die in dem Fehler "Ansicht oder Navigator  "Name" existiert nicht" enden:

ID=template.UniversalID
         Set viewdoc=db.GetDocumentByUNID(ID)
         Set newdoc= viewdoc.CopyToDatabase(db)
         Call newdoc.ReplaceItemValue("$Name",viewname)
         Call newdoc.ReplaceItemValue("$Title",viewname)
         Call newdoc.Save(True,True)
         Call dbui.Close
         Set dbui=Nothing
         Set db=Nothing
         Set dbui=ws.CurrentDatabase
         Set db=dbui.Database
         Set view=db.getView(viewname)
         Call ws.OpenDatabase(db.Server, db.FilePath)
         Call ws.OpenFrameSet("Root")
         Call ws.settargetframe("RootMain")
         Call dbui.OpenView(viewname)


Im debugger sieht man alle Objekte, scheinbar alles ok.

Barbara

Driri

  • Gast
Re: Aus Vorlage erstellten Ordner öffnen
« Antwort #5 am: 07.08.09 - 10:02:24 »
Schon mal so probiert :

Zitat
...
Call dbui.Close
Call ws.OpenDatabase(db.Server, db.FilePath)
...

Die Zeile "Set dbui=ws.CurrentDatabase" dürfte Dir nämlich eigentlich nichts zurückliefern, wenn Du die Datenbank vorher schließst.
« Letzte Änderung: 07.08.09 - 10:05:11 von Driri »

Offline Barbara

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Weiblich
Re: Aus Vorlage erstellten Ordner öffnen
« Antwort #6 am: 07.08.09 - 10:12:56 »
auf der Suche nach einem würgaround bin ich über database.enablefolder gestoßen. Bringt auch nichts. Mit deiner Anregung kommt bekannte Meldung, dass "Ansicht nicht existiert"

Zitat
....
Call db.EnableFolder(viewname)
         Call dbui.Close
         Call ws.OpenDatabase(db.Server, db.FilePath)
      End If
      
   'Ordner neu befüllen
      Suche= { @contains(FirmaStandort;"} & key & {") & Ereignis != "3"}
      Set col=db.Search(Suche,Nothing,0)
      Call col.PutAllInFolder( viewname)
      
      Call ws.OpenFrameSet("Root")
      Call ws.settargetframe("RootMain")
      Call dbui.OpenView(viewname)
      Call ws.ViewRefresh

Driri

  • Gast
Re: Aus Vorlage erstellten Ordner öffnen
« Antwort #7 am: 07.08.09 - 13:53:55 »
Ich würde mal testweise den ganzen Kram mit Frameset und so weglassen. Also in etwa so :

Zitat
If
   ...
   Call db.EnableFolder(viewname)
End If

Suche= { @contains(FirmaStandort;"} & key & {") & Ereignis != "3"}
Set col=db.Search(Suche,Nothing,0)
Call col.PutAllInFolder( viewname)

Call dbui.Close
Call ws.OpenDatabase(db.Server, db.FilePath)
Set dbui = ws.CurrentDatabase
Call dbui.OpenView(viewname)

Offline Barbara

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Weiblich
Re: Aus Vorlage erstellten Ordner öffnen
« Antwort #8 am: 10.08.09 - 16:04:32 »
Hallo Ingo,
auch die spartanische Variante liefert den bekannten Fehler.

Ich gebe es auf und warte auf Notes 7 oder 8.

Ich mache es jetzt so, dass die User eine Klartextmeldung erhalten, wenn kein entsprechender Ordner vorhanden ist. Die müssen sich dann halt beim Admin melden, dass er einen Ordner mit der richtigen Namenskonvention erstellt. Eleganter wäre die Variante gewesen, in der sich die Datenbank eigenständig den verändereten Gegebenheiten angepasst hätte. Naja, so sichern wir unsere Arbeitsplätze  ;)

Danke für Deine Mühe

Barbara

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Aus Vorlage erstellten Ordner öffnen
« Antwort #9 am: 10.08.09 - 16:11:12 »
Das Problem an der Sache ist: Beim Öffnen der DB werden essentielle Bestandteile des Design einer DB in den Speicher geladen - Ordner zählen mit dazu (bei SPOFU-Folders wird allerdings anders vorgegangen). Um auf einen neuen Ordner zuzugreifen, muss daher die Datenbank erneut im Frontend geöffnet werden.
Und nun beisst sich die Katze in den Schwanz: Wenn man das "Re-Open" der DB aus der DB selbst vornehmen will, wird auch der ausführende Code mittendrin beendet.

Da nützt dann auch das Warten auf spätere Versionen nichts.

Bernhard

Offline Barbara

  • Junior Mitglied
  • **
  • Beiträge: 93
  • Geschlecht: Weiblich
Re: Aus Vorlage erstellten Ordner öffnen
« Antwort #10 am: 11.08.09 - 10:27:29 »
Hallo Bernhard,

da habe ich in meiner Sucherei letzte Woche wohl etwas durcheinandergeschmissen. Irgendwo, finde jetzt leider die Quelle nicht mehr, habe ich gelesen, dass das ein Bug in 6 wäre.

Deine Erklärung ist logisch, die momentane Lösung unbefriedigend. Jetzt läuft es erstmal, ich muss das Konzept als solches nochmal gründlich unter die Lupe nehmen (ohne Fehlermeldung im Kreuz).

Gruß

Barbara

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz