Hallo allerseits
Ich bin gerade daran ein Script zu schreiben um Active Directory Daten auszulesen. Hab' es dabei mit ADODB versucht und stehe nun mit einem Mehrfachwert-Feld des externen Objektes an.
Folgender Code (testeshalber schreibe ich alles mal in ein Textfeld auf dem Formular):
Code
Dim objConnection As Variant Set objConnection=CreateObject("ADODB.Connection") objConnection.Open "Provider=ADsDSOObject;" Dim ojbCommand As Variant Set objCommand=CreateObject("ADODB.Command") Set objCommand.ActiveConnection=objConnection objCommand.CommandText= "<LDAP://dc=firma,dc=ch>;(objectCategory=User);distinguishedName,name,member;subtree" Dim objRecordSet As Variant Set objRecordSet=objCommand.Execute Dim ws As New NotesUIWorkspace While Not objRecordSet.EOF Call ws.CurrentDocument.FieldAppendText("Userdata", "USER: " & objRecordSet.Fields("Name").Value) Call ws.CurrentDocument.FieldAppendText("Userdata", LSEnter) Call ws.CurrentDocument.FieldAppendText("Userdata",objRecordSet.Fields("distinguishedName").Value) Call ws.CurrentDocument.FieldAppendText("Userdata", LSEnter) Call ws.CurrentDocument.FieldAppendText("Userdata","MEMBER: ") Call ws.CurrentDocument.FieldAppendText("Userdata", LSEnter & LSEnter) objRecordSet.MoveNext Wend objConnection.Close
Das Problem liegt nun beim objRecordSet.Fields("member"). Dies ist ein Multivalue Feld.
Eine Zuweisung wie
schlägt fehl. Und durch das Objekt kann ich nicht durchloopen, weil LS es nicht als Array "erkennt".
Wenn ich den Wert einer Variable (Variant) zuweise, dann hat die Variable nachher den Wert NULL.
Auch eine Zuweisung in der Art
bringt nichts.
Schlussendlich müsste es eigentlich einen Loop im Sinne von
Code
Forall element In objRecordSet.Fields("member")
Call ws.CurrentDocument.FieldAppendText("Userdata", element)
End Forall
geben
Kann mir jemand weiterhelfen?