Das Notes Forum

Domino 9 und frühere Versionen => ND7: Entwicklung => Thema gestartet von: Hedwig14 am 21.01.09 - 16:45:30

Titel: Common-Name
Beitrag von: Hedwig14 am 21.01.09 - 16:45:30
Hallo!
Mit Hilfe dieser Function löse ich die Gruppenmitglieder bestehenden Gruppen auf.
Leider wird mir immer der Notes Fullname zurückgegeben. (CN=Hans Otto.....)
Wie kann ich den Common-Name erhalten ?


Function getPersonMembers(groupName As String) As Variant
   Dim nab As New NotesDatabase("","names.nsf")
   Dim grpView As NotesView, personView As NotesView
   Dim doc As NotesDocument , doc2 As NotesDocument
   Dim namesList As Variant
   Dim memberList() As String
   Dim grpname As NotesName
   
   If nab.Server = "" Then
      Set nab = New NotesDatabase("srv","names.nsf")
   End If
   Set grpView = nab.GetView("Groups")
   Set personView = nab.GetView("($VIMPeople)")
   Set doc = grpView.GetDocumentByKey(groupName)
   
   If doc Is Nothing Then
      getPersonMembers = leer
      
   Else
      
      
      Redim memberList(0) As String
      If Not doc Is Nothing Then
         Forall mbrs In doc.members
            Set grpname = New NotesName(Cstr(mbrs))
            Set doc2 = personView.GetDocumentByKey(grpname.Common)
            tmnE = 0
            Forall i In memberList
               tmnE = tmnE + 1
            End Forall
            x = 0
            If doc2 Is Nothing Then
               namesList = getPersonMembers(grpname.Common)
               
               If Ubound(namesList) > 0 Then
                  
                  Redim Preserve memberList(0 To tmnE + Ubound(namesList))
                  Forall nms In namesList
                     memberList(tmnE + x) = Cstr(nms)
                     x=x+1
                  End Forall
               End If
            Else
               Redim Preserve memberList(0 To tmnE + x)
               memberList(tmnE + x) = Cstr(mbrs)
            End If   
         End Forall
      Else ' entry is either a person or a mail in db.
         
         t = 0
         Forall i In memberList
            t = t + 1
         End Forall
         
         Redim Preserve memberList(t)
         memberList( t) = Cstr(groupName)
         
      End If
      
      getPersonMembers = memberList
      
   End If
End Function
Titel: Re: Common-Name
Beitrag von: koehlerbv am 21.01.09 - 16:49:18
Bilde mit der NotesName-Klasse einen neuen NotesName. Die Property "Common" gibt dann das Gewünschte zurück.

Bernhard
Titel: Re: Common-Name
Beitrag von: Hedwig14 am 21.01.09 - 16:51:02
das habe ich schon versucht !
ich hatte nur probleme beim Einbinden in das Script

Dim person as NotesName
Set person = New NotesName(???)
Titel: Re: Common-Name
Beitrag von: koehlerbv am 21.01.09 - 17:00:44
Das steht doch in der DesignerHelp ...
Titel: Re: Common-Name
Beitrag von: Hedwig14 am 27.01.09 - 08:49:52
Hallo,
wie kann ich "Notesname" in die o.a. Formel einbinden, dass ich nicht den Notel-Fullname erhalte sondern den Common-Name ???

Danke für die Hilfe!
Titel: Re: Common-Name
Beitrag von: Axel am 27.01.09 - 09:46:01
Auf die Schnelle würde ich das mal so probieren.

Function getPersonMembers(groupName As String) As Variant
   Dim nab As New NotesDatabase("","names.nsf")
   Dim grpView As NotesView, personView As NotesView
   Dim doc As NotesDocument , doc2 As NotesDocument
   Dim namesList As Variant
   Dim memberList() As String
   Dim grpname As NotesName
   Dim person As NotesName

....

                  Redim Preserve memberList(0 To tmnE + Ubound(namesList))
                  Forall nms In namesList
                     Set person = New NotesName(Cstr(nms))
                     memberList(tmnE + x) = person.common
                     x=x+1
                  End Forall
               End If
            Else
               Redim Preserve memberList(0 To tmnE + x)
               memberList(tmnE + x) = Cstr(mbrs)
            End If   
         End Forall
...

End Function


Axel
Titel: Re: Common-Name
Beitrag von: Hedwig14 am 28.01.09 - 09:25:58
@Axel: Vielen Dank ! Hat super geklappt !
Perfekt !