Bekerja di lingkungan Blue Prisms vb.net dan saat ini sedang membangun utilitas LDAP VBO. Saya memiliki kode di bawah ini, itu akan mengembalikan daftar pengguna dalam Grup AD yaitu samAccountName, givenname & surname.

Impor namespace saya yang digunakan adalah:

System
System.Drawing, System.Data
System.DirectoryServices
System.Collections.Generic

Masalah saya adalah dengan mencoba mengulang hasil dan menyimpan setiap baris data yang dikembalikan dalam item data koleksi akhir saya, colResults.

Saya tahu saya sedang bekerja dengan koleksi dan saya sadar bahwa apa yang saya lakukan di loop Untuk Setiap saya tidak benar, yaitu kesalahan kompilasi:

"String tidak dapat dikonversi ke System.Data.Datatable"

Tapi aku tidak bisa menyelesaikan.

Saya telah mencoba menulis ulang dan menggunakan indeks tetapi secara sintaksis saya tidak dapat menggunakan .Count dengan Properties.SearchResultCollection saya.

Dim de As New DirectoryServices.DirectoryEntry("LDAP://" + Path)
Dim ds As New DirectoryServices.DirectorySearcher(de)
Dim srCol As DirectoryServices.SearchResultCollection
Dim sr As DirectoryServices.SearchResult

'Try and assume success
Success = True

Try

    ds.Filter = "(&(objectCategory=user)(memberOf=" + GroupDN + "))"
    ds.PropertiesToLoad.Add("givenname")
    ds.PropertiesToLoad.Add("sn")
    ds.PropertiesToLoad.Add("samAccountName")

    srCol = ds.FindAll()

    For Each sr In srCol
        If Not sr.GetDirectoryEntry.Properties("name").Value Is Nothing Then
            colResults = (sr.GetDirectoryEntry.Properties("givenname").Value.ToString())
            colResults = (sr.GetDirectoryEntry.Properties("sn").Value.ToString())
            colResults = (sr.GetDirectoryEntry.Properties("samAccountName").Value.ToString)
        End If
    Next
Catch e As System.Exception
    Success = False
End Try
1
GpioNelson 7 Juli 2020, 11:39

1 menjawab

Jawaban Terbaik

Saat mengembalikan DataTable dari tahap kode di Blue Prism, tahap kode tidak tahu kolom apa yang akan menjadi parameter output – Anda biasanya akan menetapkan DataTable baru ke dalamnya di dalam kode, tentukan kolom, lalu mengisi baris.

Jadi, Anda harus menginisialisasi DataTable colResults di awal tahap kode Anda:

colResults = new DataTable
' make sure the output parameter has these columns defined (or none at all)
colResults.Columns.Add("givenname")
colResults.Columns.Add("sn")
colResults.Columns.Add("samAccountName")

Dan terus membuat DataRows dan menambahkannya ke tabel dari dalam loop:

For ...
    If ...
        Dim newRow as DataRow = colResults.NewRow
        newRow("givenname") = ...
        newRow("sn") = ...
        newRow("samAccountName") = ...
        colResults.Rows.Add(newRow)
    End If
Next

dokumentasi kelas DataRow menunjukkan contoh yang detail juga.

0
berdosi 6 September 2020, 23:12