Das Notes Forum
Domino 9 und frühere Versionen => ND8: Entwicklung => Thema gestartet von: Scotty67 am 28.06.11 - 00:52:19
-
Ganz simple Sache. Möcht aus dem Names & Address Book vom Current User Details auslesen.
ABER, es kommt null retour
Dim uidoc As NotesUIDocument
Dim workspace As New NotesUIWorkspace
Dim session As New NotesSession
Dim books As Variant
Dim view As NotesView
Dim doc As NotesDocument
Dim done As Variant
Dim person As String
books = session.AddressBooks
Dim column As NotesViewColumn
done = False
'Dim NAB As NotesDatabase
'Dim db2 As New NotesDatabase("","Test.nsf")
Dim NAB As New NotesDatabase( "", "" )
If NAB.OpenByReplicaID( "", "80256146005AEF49" ) Then
'Print( db.Title & " was successfully opened" )
'Msgbox (NAB.Title & " was opened")
Else
'Msgbox( "Unable to open database" )
End If
Dim user As String
user = session.UserName
Set view = NAB.GetView("($People)")
Set doc = view.GetDocumentByKey( user )
Call workspace.ComposeDocument( "", "", "IDEA" )
Call uidoc.FieldSetText( "Phone", doc.OfficePhoneNumber( 0 ) )
-
Oh Hannes, solche Postings mag ich >:(
Du knallst uns ein Problem vor mit der Bemerkung "geht nicht" (bzw. "null retour"). Dazu ein Quelltext, der überhaupt nicht für eine Forumsfrage aufbereitet wurde. Schau Dir mal die Deklarationen an, die dann gar nicht verwendet werden - da müssen wir überall darüber hinweg lesen! Vorher ist aber erstmal zu ermitteln, ob Du das nicht doch gebrauchst ...
Dann so ein Show Stopper wie die hardcodierte ReplicaID. Wir wissen doch gar nicht, auf was für eine DB diese zeigt!! Abgesehen davon ist sowas ober-pfui!
Dann stellt sich heraus, dass Du Dir Deinen Code überhaupt nicht in slow motion angeschaut hast - Du hast also den Debugger nicht benutzt. Sonst hättest Du uns das ganze nämlich gleich erheblich erleichtern können ...
Und was das schlimmste ist - und hier kommen wir zur Auflösung: Du hast die Designer-Hilfe offensichtlich nicht benutzt. Wie arbeitet NotesView.GetDocumentByKey? Richtig - es sucht den Such-Wert (sharp or not) in der ersten sortierten Spalte. Und was steht in "($People)" in der ersten Spalte? Genau - bestimmt nicht etwas, was NotesSession.UserName.
Hiermit also zurück auf Anfang! Leute - bittet schaltet das Hirn an - bei der Programmierung wie bei der Administration.
Bernhard
-
na pumm - gleich so ein urteil ::) ....
OK, also ich versuche ganz einfach aus dem Domänen-NAB über den ($People) View mit der Funktion "GetDocumentByKey" an
Benutzerdetails (also z.B. Telefon-Nr.) ranzukommen....
Ich hab den Debugger sehr wohl verwendet !!! Ok was meine ich mit "null kommt retour" - über DOC bekomme ich keine Rückgabewert den ich aber klarerweise brauche, jetzt hab ich mich halt gefragt woran liegt es ? Ist der View "($People)" gar nicht dafür geeignet ? Und wenn ja welche Vorraussetzungen müssen gegeben sein ! Also über diesen View dürfte es nicht funktionieren hab ich das so richtig verstanden ?
Urteil ned so hart mit mir, ich wende mich ja deshalb an Euch weil ich eben nicht der Programmierer bin...
-
...so DANKE ;D
hab es jetzt geschafft, ich hab den "($PeopleDetail)" View genommen mit dem FALSE als Zusatzparameter bei der GetDocumentByKey
-
Nur so als Tipp : Mit Formelsprache bekommt man das je nach Anforderung ggf. deutlich kürzer hin (@NameLookup).
-
Und in Notes 8 gibts auch in Script einige nützliche Erweiterungen der Standardklassen, u.a. NotesDirectoryNavigator.
Set notesDirectoryNavigator = notesDirectory.LookupNames(view$, names, items[, partialmatches])
In der Hilfe steht alles beschrieben.
Andreas