Frage zu IsPublicAddressBook property

  • Hallo zusammen,


    wann wird ein Adressbuch von IsPublicAddressBook als public angesehen? Sobald es auf dem Server liegt oder sobald es eine bestimmte Schablone hat?


    Ich habe folgendes Problem. In der Notes.ini meines Client ist noch ein zusätzliches Adressbuch eingebunden.

    Code
    NAMES=names.nsf,NOTESSERVER!!pfad1\IT-Orga\Adr_IT_Org.nsf


    Dieses Adressbuch basiert auf einer von mir angepassten pernames-Schablone.


    Jetzt läuft ein Agent, der mir das öffentliche Adressbuch (bzw. dessen Namen) zurückliefern soll.


    In diesem Code liefert er mir mit "b" das "Adr_IT_Org.nsf" zurück. Ich bräuchte aber das "names" des Servers.
    Hat jemand eine Erleuchtung für mich? :-? Oder wie geht man das Problem dann am besten an?


    Grüße


    Christian

    OS: XP & 2k3 TS über ICA
    Notes: 6.5.5 & 8.0.2
    Domino: 8.0.2FP1
    ...

  • IsPublicAddressbook hängt von der Schablone ab.


    Da Du ein Exit Forall verwendest, bekommst Du selbstverständlich nur das erste Adressbuch zurückgeliefert, dass session.Addressbooks beinhaltet.


    Wenn Du das Server-Adressbuch benötigst, kannst Du es doch direkt mit Server und FilePath instantiieren.


    Bernhard

  • Ja das ist schon klar. Nur habe ich die Datenbank bzw. den Agenten nicht geschrieben und weiß deshalb nicht, wieso der Entwickler das names.nsf auf dem Server nicht hart codiert hat. Eine Replik dieser DB liegt eben auf einigen anderen Server, bei denen wir nicht wissen, ob das names dort auch names heißt. Vielleicht gibt es tatsächtlich Leute bei denen es bspw. oenab.nsf heißt.


    Hat vielleicht noch jemand eine Ahnung, wie man in diesem Fall sicherstellen kann, dass tatsächlich das Names zurückgeliefert wird?


    Grüße


    Christian

    OS: XP & 2k3 TS über ICA
    Notes: 6.5.5 & 8.0.2
    Domino: 8.0.2FP1
    ...

  • Naja, herausfinden kann man das schon:
    - Die PublicAddressbooks ermitteln
    - Dort dann nach einem eindeutigen Merkmal suchen. Beispielsweise sollten in der Ansicht Server die Server die gleichen Organisationsangaben enthalten wie die ID des aktuellen Users.


    Bernhard

  • Das man anhand des Inhalts das herausfinden kann ist mir schon klar, aber eben nicht nur über diese Eigenschaften und darum ging es ja.


    Ich könnte es auch anhand des Datenbank Titels herausfinden.
    Wäre auch einfach als anhand einzelner Dokumente.


    Aber das müsste dann alles in den Code mitaufgenommen werden

  • Also ich bin jetzt etwas verwirrt... :-?


    Die Ursprungsfrage war ja für mich nur, ob es von der Schablone abhängt, dass ein Adressbuch als public erkannt wird. Diese Antwort war ja.
    In diesem Fall verstehe ich nicht, wieso es mein Abteilungsadressbuch, welches auf dem pernames aufbaut als PublicAdressBook deklariert.


    Oder ist die Abbruchbedingung falsch?

    Code
    If b.IsPublicAddressBook Then
    			server = b.server
    			adrname = b.filename					
    			Exit Forall
    		End If


    Wenn ich das "Exit Forall" weg lasse, dann funktioniert es. :) Wieso wurde da überhaupt mal das "Exit Forall" reingeschrieben. :-?
    Naja. Hauptsache jetzt tut´s.


    Grüße


    Christian

    OS: XP & 2k3 TS über ICA
    Notes: 6.5.5 & 8.0.2
    Domino: 8.0.2FP1
    ...

  • Abhängig ist es nicht von der Schablone sondern vom eingestellten Typ (Eigenschaften der Datenbank, erste Seite)


    Wenn du das Exit Forall weglässt nimmt er immer das letzte Public Address Book in der Liste.
    Mit dem Exit Forall das erste.


    Das kann in deinem Fall gutgehen, aber bei anderen schief laufen.


    Darauf würde ich mich nicht verlassen.

  • Zitat

    Wieso wurde da überhaupt mal das "Exit Forall" reingeschrieben?


    Jo, das hast Du ja programmiert und solltest daher wissen, warum Du da Exit Forall verwendet hast :D


    taurecs Einwand kann ich nur unterstreichen - wenn Du bei DEINER Installation das "falsche" Adressbuch als erstes erwischst und das "richtige" als letztes, heisst das noch lange icht, dass das bei einer anderen Installation nicht genau andersherum funktioniert.


    Mein Tipp: Hole Dir alle PublicAddressbooks und scanne diese nach einem Merkmal wie oben beschrieben. Sonst bleibt das Gefrickel.


    Bernhard

  • Hallo zusammen,


    ich habe Taurecs Tip umgesetzt und den Datenbank-Typ auf "Standard" umgestellt. Und siehe da, es funktioniert auch mit dem ursprünglichen Agenten.
    Da ich - wie schon gesagt - den Agenten nicht geschrieben haben, sondern er sich in einer replizierten DB befindet ist dies auf lange Sicht gesehen die problemloseste Lösung.


    Grüße


    Christian

    OS: XP & 2k3 TS über ICA
    Notes: 6.5.5 & 8.0.2
    Domino: 8.0.2FP1
    ...

  • Jein


    Wenn einer der User die diesen Agenten ausführen bei sich lokal noch weitere Adressbücher eingebunden hat, die diese Eigenschaft aufweisen, dann kann es wieder sein daß dein Agent auf die Nase fällt.

  • Ja, da hast Du recht. Komischerweise läuft es auf meinem Laptop. Und heute auf meinem normalen PC wieder nicht. :-?
    Naja, immerhin weiß ich woran es liegt. Da kann ich zukünftig ja auch mal schnell den zusätzlichen Adressbucheintrag rausnehmen.


    Grüße


    Christian

    OS: XP & 2k3 TS über ICA
    Notes: 6.5.5 & 8.0.2
    Domino: 8.0.2FP1
    ...