Das Notes Forum
Domino 9 und frühere Versionen => ND6: Entwicklung => Thema gestartet von: Worn am 30.04.07 - 16:06:24
-
Hy,
ich brech mir gerade einen ab und wunder mich ob es nicht einfacher geht. Ich denke mir fehlt nur wieder der entscheidende Tipp. Ich möchte per Skript den angemeldeten User im Notes Adressbuch finden und dann dort einige Felder auslesen. Soweit ist das Handwerkszeug klar.
session.username =der session.commonusername
Das Problem was ich habe ist folgendes:
Es gibt User die a) mehrere Vornamen b)mehrere Nachnamen haben
Wenn ich nun nur aus dem CommonUserName den (vermeintlichen Nachnamen) auslese und dann mit :
db.getdocumentbykey
suche kann es sein das ich ihn nicht finde.
Beispei:
Hans-Juergen Toppa-Mueller
Wird mir der CommonUsername als:
Hans Juergen Toppa Mueller
zurückgegeben. Bei der Suche mit Mueller werde ich erschlagen, bei Toppa findet er evtl. auch mehrere und nur wenn ich nach Toppa Mueller suche finde ich denjenigen den ich brauche. Das Spiel kann man mit bis zu 3 Vor und 3 Nachnamen (Rekord bei uns) spielen.
Dann habe ich die Ansicht (versteckt) $People gefunden, wo in der 2 Spalte der komplette Username CN=..... abgebildet wird. Ich bekomme es aber nicht hin mit
db.getdokumentbykey
darauf abzufragen.
Last but not least habe ich es mit einer Schleife versucht. session.Username mit jedem Eintrag auf dem Server vergleichen in doc.fullname...... da brauch ich euch nicht zu erzählen wie lange das jeweils dauert, dafür ist es eindeutig!
Also, wie lös ich das oder wie habt ihr sowas gelöst? Muss ich wirklich ein Monster String zerhacke und abteste machen um daran zu kommen?
Ich danke euch mal wieder....
Ben
-
Hallo Ben. Ich glaub am einfachsten geht das ganze mit einer Formel (ausgeführt über Evaluate).
@NameLookup( [ Suchtyp ] ; Benutzername; Feld )
Siehe Notes Hilfe.
Gruß, Ronny
-
Hy,
ja nur kann ich keine Formel nutzen, ich brauche Skript. O0
Grüße
Ben
-
Kannst die Formel doch in dein Script einbauen und den Rückgabewert dann nach belieben im Script verwursten.
namerInfo = evaluate(|@NameLookup( [ Suchtyp ] ; Benutzername; Feld )|).
Gruß, Ronny
-
Hy,
::) ajahhh ;D das geht?? Okay ich probiere es aus!
Bedankt!
Ben
-
Hmm,
kann ich leider nicht benutzen, ich brauch ja das richtige Dokument zurück um
später Felder auszulesen usw. Hier bekomm ich nur ne Textliste...
Danke trotzdem
Ben
-
Also, wenn du das Personendokument brauchst, kannst du mit der Ansicht ($People) in der names.nsf und einem NotesView.Search arbeiten.
-
Ich halte die Lösung über @nameLookup für die bessere, da hier autom. alle verbundenen Adressbücher durchsucht werden (Lokale + Server).
Gruß, Ronny
-
Kann schon sein, kommt aber auf den Kontext an. Vielleicht erzählt den Worn mal, dann kann man dazu was sagen...
-
Verstehe ich das Problem noch nicht, oder warum wird nicht einfach über die View "($Users)" ein
Set docPerson = viewUsers.GetDocumentByKey (session.UserName, True)
abgesetzt?
Bernhard
-
Hy,
Verstehe ich das Problem noch nicht, oder warum wird nicht einfach über die View "($Users)" ein
Set docPerson = viewUsers.GetDocumentByKey (session.UserName, True)
abgesetzt?
Bernhard
...Hmm das mag daran liegen, dass ich die Ansicht $Users nicht kannte oder nicht gesehen hab.
Das ist jedenfalls das einfachste und genau das was ich brauch!
Wieder mal perfekt! Dank an alle und besonders an Bernhard!
Grüße
Ben