Autor Thema: Ordner 'Gemeinsam, privat bei Erstbenutzung'  (Gelesen 2187 mal)

Jürgen Schomann

  • Gast
Ordner 'Gemeinsam, privat bei Erstbenutzung'
« am: 10.12.10 - 19:51:52 »
In LotusScript kann man über NotesDatabase.GetView einen Ordner 'Gemeinsam, privat bei Erstbenutzung' holen. Falls der Ordner noch nicht vorhanden ist, wurde bisher unter Notes 7 das NotesView-Objekt auf Nothing gesetzt. So kann ich dann darauf reagieren und den Ordner z. B. über NotesUIWorkspace.OpenDatabase... anlegen. Dies klappt bisher auch immer.
In Notes 8.5.2 wird dagegen auch dann ein NotesView-Objekt geliefert, wenn der private Ordner noch nicht da ist. Aber ein Zugriff z. B. mit NotesView.AllEntries führt dann zu dem Fehler 'Eintrag im Index nicht gefunden'.
Wie kann ich die bisherige Arbeitsweise auch in Notes 8 erreichen?

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Ordner 'Gemeinsam, privat bei Erstbenutzung'
« Antwort #1 am: 13.12.10 - 10:44:32 »
Hallo Jürgen,

hilft mglw. die view property .IsPrivate weiter? Die müsste ja auf False stehen und mit der von Dir angewandten Methode notesuiworkspace.opendatabase... anschließend True liefern.

Gruß
Marco
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Jürgen Schomann

  • Gast
Re: Ordner 'Gemeinsam, privat bei Erstbenutzung'
« Antwort #2 am: 15.12.10 - 13:14:15 »
Vielen Dank für deine Antwort aber leider klappt dies unter 8.5 nicht. Das View-Objekt wird als nicht Nothing geliefert aber es lässt sich nicht ansprechen.
Hier der Code:

Dim session As New NotesSession
Dim dbThis As NotesDatabase
Dim viewFolder As NotesView

Set dbThis = session.CurrentDatabase
Set viewFolder = dbThis.GetView("Test1")

If Not (viewFolder Is Nothing) Then
                                                               unter Notes 8.5 wird hierher verzweigt obwohl der private Ordner nicht gefunden wurde
   If viewFolder.IsPrivate Then           bei dieser Anweisung bricht LotusScript unter Notes 8.5 dann ab mit der Meldung
                                                               Fehlercode 4005 - Notes error: Index is not to be generated on server.
   Else
      ...
   End If
Else
   unter Notes 7 wird hierher verzweigt, wenn der private Ordner nicht gefunden wurde
End If

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Ordner 'Gemeinsam, privat bei Erstbenutzung'
« Antwort #3 am: 15.12.10 - 13:36:35 »
Mmmh, auch wenn's unschön ist, aber der Fehler ließe sich im Zweifel abfangen und gezielt nutzen...

Wo werden denn die privaten Views gespeichert - In der DB auf dem Server oder im Desktop? Ein ähnliches Problem kenne ich nämlich, wenn sie im Desktop landen - dann kann man das Objekt zwar instanzieren, damit aber nix anfangen :-(  (hatte ich allerdings in einer älteren Notes-Version, R8.5 konnte ich diesbezüglich noch nicht testen)

Gruß
Marco
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

Jürgen Schomann

  • Gast
Re: Ordner 'Gemeinsam, privat bei Erstbenutzung'
« Antwort #4 am: 16.12.10 - 15:39:02 »
Der Ordner ist nicht auf dem Desktopn, die Bezeichnung wäre dann auch 'Gemeinsam, für Desktop privat bei Erstbenutzung', die wir aber wegen grundsätzlichen Problemen nicht verwenden. Der Benutzer hat auch die Berechtigung 'Private Ordner/Ansichten erstellen'. Ohne diese würden Ordner 'Gemeinsam, privat bei Erstbenutzung' automatisch auf dem Desktop erstellt werden.
Ich habe auch eine Lösung für das genannte Problem, indem ich alle Ansichten über NotesDatabase.Views nach dem Ordner durchsuche und über das intere Feld $Flags prüfe ob es der private Ordner ist. Andernfalls lege ich ihn über NotesUIWorkspace.OpenDatabase... an. Dies klappt in Notes 7 und 8.5.
Ungeachtet dessen ist aber eben die Reaktion bei NotesDatabase.GetView, nicht wie unter Notes 7 Nothing für das Objekt zu liefern, wenn der Ordner nicht vorhanden ist, schlicht weg falsch.

Offline marschul

  • Senior Mitglied
  • ****
  • Beiträge: 280
  • Geschlecht: Männlich
Re: Ordner 'Gemeinsam, privat bei Erstbenutzung'
« Antwort #5 am: 17.12.10 - 08:02:41 »
Gute Idee mit dem $Flags-Item. Was mich wundert: Über die View in notesDatabase.Views kannst Du das Teil dann scheinbar doch abgreifen, d.h. darin ist es nicht Nothing?!?
Auf alle Fälle haben wir wieder dazu gelernt  :)

Viele Grüße
Marco

PS: Das Auslagern in den Desktop kann (konnte) sinnvoll sein, wenn die View userbezogene Selektionen enthält. Zumindest in früheren Versionen kam der Indexer auf dem Server ins Schleudern, wenn solche Views in der DB gespeichert wurden, was eine Benutzung der Anwendung teilweise fast unmöglich machte (sehr lange Wartezeiten).
Gruß
Marco

Ich, der ich weiß, mir einzubilden, dass ich weiß, nichts zu wissen, weiß, dass ich nichts weiß. (Sokrates)
Keiner ist unnütz, er kann immer noch als schlechtes Beispiel dienen. (unbekannt)

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz