Das Notes Forum

Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Leddl am 13.02.07 - 12:01:16

Titel: Gemeinsam, privat bei Erstbenutzung
Beitrag von: Leddl am 13.02.07 - 12:01:16
Hallo,

für die Suche in meiner Anwendung nutze ich einen Ordner der Art "Gemeinsam, privat bei Erstbenutzung" zum Zwischenspeichern der Ergebnisse. Nachdem hierbei Probleme auftraten, habe ich hier im Forum gesucht und bin auch auf diverse Tipss gestoßen.
Ich habe dann im PostOpen meines Datenbankscripts folgenden Code eingebaut:
Code
Dim ws As New NotesUIWorkspace
Dim uiview As NotesUIView
	
Call ws.OpenDatabase('ServerName', 'DatenbankName', 'OrdnerName')
	
Set uiview = ws.CurrentView
uiview.Close
Damit sollte ja eigentlich der - bei der ersten Benutzung noch - gemeinsame Ordner geöffnet und wieder geschlossen werden. Dabei soll laut den Aussagen, die ich durch meine Suche gefunden habe, der private Ordner erstellt werden.
Das scheint auch manchmal zu funktionieren, vor allem, wenn ich zwischen das Öffnen und das Schließen noch eine MessageBox einbaue. Lasse ich die MessageBox weg, wird der private Ordner in der Regel nicht erstellt (ich meine aber, dass es ab und zu dennoch geklappt hat, kann mir aber nicht ganz erklären, woran das lag).

Ist der Code denn für dieses Problem überhaupt korrekt, oder kann man daran was ändern, so dass es klappt?
Gibt es evtl. sogar eine Möglichkeit, erst zu prüfen, ob der private Ordner bereits existiert? Dann bräuchte man ja nicht bei jedem Start den  Ordner öffnen und wieder schließen...

Danke im Voraus für eure Antworten...
Axel
Titel: Re: Gemeinsam, privat bei Erstbenutzung
Beitrag von: Axel am 13.02.07 - 13:00:25
Ich mache das immer mit zwei Formelzeilen im PostOpen-Event des Datenbank-Scriptes.

@Command([OpenView]; "(TempD)");
@Command([FileCloseWindow]);


Axel
Titel: Re: Gemeinsam, privat bei Erstbenutzung
Beitrag von: koehlerbv am 13.02.07 - 13:04:43
In bestimmten Fällen kann es auch ein geschickter Weg sein, wenn man die Aktion (zum Beispiel das Suchen) aus einer Aktion im privaten Ordner macht - dabei wird dieser ja auf jeden Fall angelegt.

Bernhard
Titel: Re: Gemeinsam, privat bei Erstbenutzung
Beitrag von: Leddl am 13.02.07 - 13:19:17
Naja, ihr beiden erinnert euch garantiert noch an mein Problem um Weihnachten rum, oder? ;)
Die Suche findet eigentlich in der Datenbank einer anderen Notes-Anwendung statt.
Um dann in der anderen Anwendung nicht auch noch die Berechtigungen für x User setzen zu müssen (denn nur für User meiner Applikation sollen dort die privaten Ordner erstellt werden), wollte ich den Ordner durch meine Anwendung erstellen lassen.
Ich hätte auch gerne eine Formel genommen, da ich gelesen habe, dass es damit wohl sicher funktioniert. Allerdings scheidet das ja aus, da ich auf eine andere Datenbank zugreifen muß. Und das ist ja - zumindest habe ich in der Hilfe nichts gegenteiliges gefunden - nicht möglich...

Die Suche ist fertig implementiert, es geht nur noch darum, dass der private Ordner beim ersten Start angelegt wird...
Titel: Re: Gemeinsam, privat bei Erstbenutzung
Beitrag von: Axel am 13.02.07 - 13:36:44
Naja, ihr beiden erinnert euch garantiert noch an mein Problem um Weihnachten rum, oder? ;)

Dunkel.   ;)

Wenn ich das richtig sehe, versuchst du mit deinem Script den Ordner in der andere DB zu erstellen.

Dann versuch's doch mal mit diesen beiden Zeilen:

@Command([FileDatabaseOpen];"NamedesServers";"NamederDatenbank";"NamedesOrdners")
@Command([CloseWindow]);


Axel
Titel: Re: Gemeinsam, privat bei Erstbenutzung
Beitrag von: Leddl am 13.02.07 - 14:02:24
Hey super... danke!
Nachdem ich aus "FileDatabaseOpen" "FileOpenDatabase" gemacht habe ( ;D) funktioniert es...

Nach dem Umstieg von LotusScript nach Formel besteht dann nur noch folgendes Problem:
Bin ich nicht mit dem Server verbunden, soll lokal gearbeitet werden. Das ging mit Script noch ganz einfach. Wie bekomme ich aber per Formel den aktuellen Server heraus? Also "" für lokal und den Servernamen, falls ich online bin...
Titel: Re: Gemeinsam, privat bei Erstbenutzung
Beitrag von: Axel am 13.02.07 - 14:07:34
Hey super... danke!
Nachdem ich aus "FileDatabaseOpen" "FileOpenDatabase" gemacht habe ( ;D) funktioniert es...

Es lebe der Dreckfuhler. Sorry.  ;)

Das kannst du z.B. mit @Subset(@DbName; 1) machen.


Axel
 
Titel: Re: Gemeinsam, privat bei Erstbenutzung
Beitrag von: Leddl am 13.02.07 - 14:19:29
Kein Problem, kann ja passieren. Hast mir sehr damit geholfen!

Gibt es eventuell irgendeine Möglichkeit, eine LotusScript-Konstante oder eine LotusScript-Funktion aus ner Formel aufzurufen? Geht darum, dass ich bisher Dinge wie den Datenbank- und Ordnernamen als Konstanten in einer Skriptbibliothek abgelegt habe, um die so später einfacher warten zu können.
Titel: Re: Gemeinsam, privat bei Erstbenutzung
Beitrag von: Axel am 13.02.07 - 14:29:35
Dazu gibt's leider nix direktes. Du kannst allerdings den Umweg über die notes.ini fliegen. Dort mit Script die Einträge setzen und mit @Environment auslesen.


Axel
 
Titel: Re: Gemeinsam, privat bei Erstbenutzung
Beitrag von: Leddl am 13.02.07 - 14:42:29
Hm ne... dann änder ich lieber bei Bedarf an 2 Stellen.

Danke auf jeden Fall für die Hilfe!