Domino 9 und frühere Versionen > ND7: Entwicklung
Session.Adressbooks, was bekommt man zurük?
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