Autor Thema: Session.Adressbooks, was bekommt man zurük?  (Gelesen 3901 mal)

botschi

  • Gast
Session.Adressbooks, was bekommt man zurük?
« am: 10.08.07 - 09:15:52 »
Hallo,

wir haben einen Kunden, der greift über eine Leitung auf unseren Notesserver zu- also keine Webapplikation.

Wenn ich nun mit Notessession.Adressbooks alle unsere Adressbücher nach einem bestimmten Personendokument durchsuchen möchte, was bekommt der Kunde für Adressbücher zurück? UNsere oder seine? Der Kunde hat Lesezugriff auf unsere Adressbücher.
Wenn ich es debugge, bekomme ich alle öffentlichen Adressbücher unserer Domäne zurück, der Kunde auch?

Matthias
« Letzte Änderung: 10.08.07 - 15:22:01 von botschi »

Driri

  • Gast
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #1 am: 10.08.07 - 09:19:35 »
Ich würde sagen, kommt darauf an, wo das Script läuft.

Wenn das Script auf eurem Server läuft, würde es auch eure Adreßbücher liefern, läuft das Script auf dem Client des Kunden, müßte es die beim Kunden konfigurierten Adreßbücher liefern.

botschi

  • Gast
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #2 am: 10.08.07 - 09:21:15 »
Also die DB liegt auf unserem Server und der Code ist in einer Bibliothek, also kein Agent der aufgerufen wird.
Wo läuft denn dann das Script???

Matthias

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #3 am: 10.08.07 - 09:21:23 »
1) Auch ein Webclient greift über eine "Leitung" zu. ;)

2) Die Antwort auf Deine Frage steht doch eh in der Designer-Hilfe:
Zitat
If the program runs on a workstation, this property includes Domino Directories, directory catalogs, and Personal Address Books. If the program runs on a server, this property includes only Domino Directories and directory catalogs on the server.
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

botschi

  • Gast
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #4 am: 10.08.07 - 09:56:50 »
Danke für eure Antworten.
Warum findet diese Zeile dann das Personendokument nicht?
Set ivAdressview = book.GetView( "($VIMPeople)" )
Set ivPersonendok = ivAdressview.GetDocumentByKey( ivName.Abbreviated)

In ivName steht "Hans Dampf/Firma".
Ich habe hinter "ivName.Abbreviated" ein true gesetzt, also
Set ivPersonendok = ivAdressview.GetDocumentByKey( ivName.Abbreviated, true)

Hoffentlich bringt es was, ich kann den Zugriff des Kunden hier nicht simulieren und bin auf ihn angewiesen- was es nicht leichter macht... Bei mir gehts auch ohne das true.

Matthias
« Letzte Änderung: 10.08.07 - 09:59:41 von botschi »

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #5 am: 10.08.07 - 10:09:18 »
Code
Set ivAdressview = book.GetView( "($VIMPeople)" )
Set ivPersonendok = ivAdressview.GetDocumentByKey( ivName.Abbreviated)

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?
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

botschi

  • Gast
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #6 am: 10.08.07 - 10:17:09 »
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

Offline m3

  • Freund des Hauses!
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 8.102
  • Geschlecht: Männlich
  • Non ex transverso sed deorsum!
    • leyrers online pamphlet
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #7 am: 10.08.07 - 10:27:13 »
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".
HTH
m³ aka. Martin -- leyrers online pamphlet | LEYON - All things Lotus (IBM Collaborations Solutions)

All programs evolve until they can send email.
Except Microsoft Exchange.
    - Memorable Quotes from Alt.Sysadmin.Recovery

"Lotus Notes ist wie ein Badezimmer, geht ohne Kacheln, aber nicht so gut." -- Peter Klett

"If there isn't at least a handful of solutions for any given problem, it isn't IBM"™ - @notessensai

botschi

  • Gast
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #8 am: 10.08.07 - 15:21:51 »
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

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #9 am: 10.08.07 - 15:26:20 »
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

botschi

  • Gast
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #10 am: 10.08.07 - 15:30:22 »
Ahhh.
Dann bekommt der Kunde halt "seine" Adressbücher zurück und nicht unsere. Deswegen hat er das Personendokument auch nicht gefunden.
Ich gehe stark davon aus, wenn der Kunde den Adress-Dialog aufruft, dass er nicht unsere Adressbücher zur Auswahl hat?
Nur zum Verständnis...

Matthias

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #11 am: 10.08.07 - 15:33:03 »
Zumindest Eure Server-NAMES.NSF bekommt er zurück - wenn er in einer entsprechenden AU ist. Sonst kommt es darauf an, was über DA oder DC oder gar über die NOTES.INI eingebunden ist.
Es spielt dabei auch keinerlei Rolle, ob die DB mit dem Programm auf dem Server liegt oder lokal.

Bernhard

botschi

  • Gast
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #12 am: 10.08.07 - 15:38:37 »
Tja, das wüsste ich auch manchmal gerne.
Die haben einen Terminalclient und nutzen Notes in diesem Kiosk-Modus... Das ist ja recht wild, ohne Menüleiste und ohne rechte Maustaste (haben die sogar nur einen Tab?) usw.

Was da also konfiguriert ist und wie sich son Ding verhält, würde mich auch interessieren. Da bin ich mit dem direkten Pfad zu unserem Adressbuch wohl auf der sichersten aller Seiten.

Matthias

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: Session.Adressbooks, was bekommt man zurük?
« Antwort #13 am: 10.08.07 - 15:43:22 »
Der Kiosk-Mode tut da nix zur Sache - der braucht auch 'ne AU  ;)

Aber mit Deiner jetzigen Lösung bist Du auf jedem Fall auf einem sicheren Weg!

Bernhard

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz