Autor Thema: GetDocumentByKey - funktioniert nicht  (Gelesen 2543 mal)

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
GetDocumentByKey - funktioniert nicht
« 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 ) )
   
   

Offline koehlerbv

  • Moderator
  • Gold Platin u.s.w. member:)
  • *****
  • Beiträge: 20.460
  • Geschlecht: Männlich
Re: GetDocumentByKey - funktioniert nicht
« Antwort #1 am: 28.06.11 - 01:14:47 »
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

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
Re: GetDocumentByKey - funktioniert nicht
« Antwort #2 am: 28.06.11 - 07:07:52 »
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...

Offline Scotty67

  • Aktives Mitglied
  • ***
  • Beiträge: 146
Re: GetDocumentByKey - funktioniert nicht
« Antwort #3 am: 28.06.11 - 07:25:45 »
...so DANKE  ;D
hab es jetzt geschafft, ich hab den "($PeopleDetail)" View genommen mit dem FALSE als Zusatzparameter bei der GetDocumentByKey


Driri

  • Gast
Re: GetDocumentByKey - funktioniert nicht
« Antwort #4 am: 28.06.11 - 08:35:37 »
Nur so als Tipp : Mit Formelsprache bekommt man das je nach Anforderung ggf. deutlich kürzer hin (@NameLookup).

Glombi

  • Gast
Re: GetDocumentByKey - funktioniert nicht
« Antwort #5 am: 28.06.11 - 08:44:52 »
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

 

Impressum Atnotes.de  -  Powered by Syslords Solutions  -  Datenschutz