Domino 9 und frühere Versionen > ND7: Entwicklung

Session.Adressbooks, was bekommt man zurük?

<< < (2/3) > >>

m3:

--- Code: ---Set ivAdressview = book.GetView( "($VIMPeople)" )
Set ivPersonendok = ivAdressview.GetDocumentByKey( ivName.Abbreviated)
--- Ende Code ---

Ev. ist "book" nicht die "korrekte" Datenbank?

Prüfst Du in Deinem Code, ob Du
a) am richtigen Server
b) in der richtigen DB
bist?

botschi:
Das ist der Schnipsel:

ivAdressbooks = s.AddressBooks
   Stop
   Forall personen In SendenAn
      
      Forall book In ivAdressbooks
         
             ' alle adressbücher durchsuchen und die
         ' internetadresse ermitteln
         If ( book.IsPublicAddressBook )  Then
            
            Call book.Open( "", "" )
            
            Set ivAdressview = book.GetView( "($VIMPeople)" )
            
            ' namensumwandlung
            ivFormel = |@left("|& personen &|";"@")|
            ivEval = Evaluate(ivFormel)
            
            Set ivName = s.CreateName(ivEval(0))
            Set ivPersonendok = ivAdressview.GetDocumentByKey( ivName.Abbreviated, True )
            
            ' die interne adresse wird durch die internetadresse ersetzt
            If Not ivPersonendok Is Nothing Then
               
               ivEmpfaenger(Ubound(ivEmpfaenger)) = ivPersonendok.InternetAddress(0)
               Exit Forall
            End If
            
         End If
      End Forall

Aus welchem Adressbuch und von welchem Server das Personendokument geholt wird, ist mir eigentlich egal (wir haben mehrere öffentliche Adressbücher). Da der Kunde das Personendok nicht findet, dachte ich halt der Code liefert seine Adressbücher zurück und da findet er natürlich das Personendok nicht.

Matthias

m3:
Also ICH würde mir (in der IsNothing Abfrage) ivEval(0) und den Server, DB sowie Viewnamen in ein Log ausgeben lassen und dann mal schaun, was da steht, wenn der Kunden die Funktion aufruft.

Aus dem Bauch heraus würde ich sagen, dass der Namen nicht "passt".

botschi:
Das mit dem Protokoll ist generell ne gute Idee, aber war mir jetzt zu heikel, am offenen Herzen an der DB zu programmieren. Ich habs aufgenommen, sodass wir das im nächsten Release dann einbauen werden.

Mittlerweile kommen die Mails auch an. Ich bin von dem "ivAdressbooks = s.AddressBooks" weg und habe direkt den Pfad zu dem Adressbuch angegeben mit "Set Adressbuch = New NotesDatabase( gvTTS.Server, "names.nsf" )".
Ich habe das Gefühl, über die Session werden irgendwelche Adressbücher zurückgegeben, aber nicht die, die wir brauchten...

Noch schlimmer finde ich, dass die Mailversendung (mit den gleichen internen Adressen) früher mit @Mailsend erfolgte und da wurden die Mails zugestellt. Seitdem wir das auf Script umgestellt haben, hatten wir das Problem. Deswegen ermittel ich jetzt aus dem Adressbuch die Internetadresse... Was macht die Formel anders?

Jedenfalls vielen Dank für eure Aufmerksamkeit!

Matthias

koehlerbv:
Die Addressbooks property gibt immer alle Adressbücher (public & private) zurück, die dem ausführenden Benutzer bzw. Server bekannt sind.
In dem Kontext, wie Du es gemacht hast, sind es immer die Adressbücher, die der Client (in der aktuellen AU) kennt. Bekannt sind genau die Adressbücher, die der Benutzer auch über den Adress-Dialog auswählen kann.

Bernhard

Navigation

[0] Themen-Index

[#] Nächste Seite

[*] Vorherige Sete

Zur normalen Ansicht wechseln