Das Notes Forum
Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Johnson am 10.02.09 - 17:21:57
-
Hallo Leute,
ich hab zwar schon im Forum gesucht, aber zum Thema Server-Adressbuch einfach Unmengen.
Ich habe eine Datenbank auf einem Client. In dieser ist ein Button, der das Adressbuch eines zuvor angegebenen Servers öffnen.
Muss das Adressbuch des Servers IMMER im Hauptverzeichnis liegen und muss es IMMER names.nsf heißen?
Wenn nicht, wie kann ich per LS das Adressbuch finden, ohne das DBDirectory durchsuchen zu müssen?
Gruß
Johnson
-
Schau dir in der Designer-Hilfe mal die Property NotesSession.Addressbooks an. Vielleicht hilft dir das weiter.
Axel
-
Damit bekomme ich mein lokales und das meines Mailservers. Wir haben aber noch 14 weitere Server, die nicht in der Auflistung sind.
-
Addressbooks liefert eine Liste der dem Client bekannten Adressbücher.
Wenn dem Client via Programm die Server bekannt sind, warum gibst Du dann nicht auch die ReplicaID des Adressbuchs mit?
Gegenfrage (an alle) Kennt jemand eine Organisation, die das DD nicht als NAMES.NSF im Root hat? (Die Thease ist natürlich gewagt, ich weiss)
Bernhard
-
Ich weiß nicht, ob das auf allen Servern bei uns so ist.
Die Frage, die sich mir stellte ist, ob es überhaupt möglich ist. Technisch gesehen.
-
Die Frage, die sich mir stellte ist, ob es überhaupt möglich ist. Technisch gesehen.
Klar, aber wir kennen ja Deine ggf. schräge Umgebung nicht.
Was immer geht, wenn Du den Server kennst: Server anfunken und aus der NOTES.INI sich die Zeile names= holen. Ohne die kann er nämlich wirklich nicht ;)
Es werden auch weitere Wege nach Rom führen (auch wenn da gerade kaum einer hin will).
Bernhard
-
Damit bekomme ich mein lokales und das meines Mailservers. Wir haben aber noch 14 weitere Server, die nicht in der Auflistung sind.
??? ???
Ähm, ich verstehe jetzt aber bei dieser Aussage nur Bahnhof. Sie diese Server nicht Mitglied eures Notes-Netzes bzw. Domäne?
Axel
-
IBM hat bereits auf der Lotusphere 2008 eindringlich und mehrfach davor gewarnt, einfach nur davon auszugehen, dass das (erste) Adressbuch immer "names.nsf" heißt und empfohlen, die entsprechenden API-Funktionen (NotesSession.Addressbooks, ...) zu benutzen.
Hintergrund: Directory Independence (http://tactics.wordpress.com/2007/04/11/domino-next-great-things-to-come/), die ja mit Domino 8.5.1 endlich und wirklich kommen soll.
-
Zur Erklährung:
Wir haben mehrere Server in mehreren Domänen.
Über die Property NotesSession.Addressbooks bekomme ich lediglich die Adressbücher zurück, die dem Client bekannt sind (wie Bernhard richtigerweise gesagt hat). Als da wären: mein lokales Adressbuch und die Adressbücher des in meiner Arbeitsumgebung eingetragenen Home- und Mailservers. Die Adressbücher der anderen Server sind nicht in dem Array drin.
Es ist mir schon klar, dass ich mit der Funktion NotesSession.GetDatabase([Server], "names.nsf") NORMALERWEISE und in einer normalen Umgebung das Adressbuch zurückbekommen. Davon kann ich doch aber nicht immer ausgehen.
Ich habe grad die API-Funktion NAMEGetAddressBooks gefunden. Die muss ich mir aber noch genauer anschauen.
-
Aus der Designer-Hilfe:
notesSession.AddressBooks
If the program runs on a server, this property includes only Domino Directories and directory catalogs on the server.
Du brauchst also nur einen Agent, der auf dem dortigen Server läuft. ;)
Oder Du nutzt die Methode via Java & IIOP:
If the program runs on a server or through remote (IIOP) calls, only Domino Directories on the server are included.
-
Das wollte ich auch erst.
Aber ich habe die DB lediglich auf einem Client und die soll auch nicht auf den Servern verteilt werden. :-\ Diese Entscheidung konnte ich leider nicht treffen.
-
Tja, dann gehts entweder nicht oder Du probierst noch den Java-Weg.
-
Du brauchst also nur einen Agent, der auf dem dortigen Server läuft
Oder der andere Server "vertraut" deinem Server. Dann kannst du den Agenten auch auf deinem Server zentral laufen lassen.
-
Ulrich, das nützt ihm aber nix, weil dann notesSession.AddressBooks noch immer nicht die Adressbücher des entfernten Servers zurückliefert sondern von dem Server, auf dem der Agent liegt.