2013-07-18 4 views
2

Мне нужно получить все имя пользователя определенной роли, чтобы я мог отправлять почту всем пользователям, имеющим доступ к этой роли. Как я мог бы выполнить эту задачу?Все имена пользователей в определенной роли в Lotus Notes

Я видел эту ссылку,

How do I get all users who have a specified role?

Неужели нет другого пути, чтобы получить весь действительное имя пользователя, которое может быть использовано в SendTo? Без этой проблемы? Хотя я не пробовал NotesACL. Я новичок в разработке Lotus Notes.

+0

Что вы имеете в виду под «этой проблемы»? В этом сообщении утверждается, что итерация через записи ACL кажется убийцей производительности, но она не цитирует никаких данных для поддержки этой претензии. Это не должно быть медленным. –

+1

Привет, Ричард. Ну, в основном это моя вина, так как я читал, что до сих пор не имею понятия о notesACL, но я действительно спешу, поэтому задал этот вопрос. Теперь я четко понимаю, как notesACL работает с помощью Кнута. У меня действительно есть длинный путь, чтобы заниматься разработкой учебных новшеств здесь всего лишь 3 недели. Большое спасибо. Бог благословил. –

ответ

6

Если вы немного влияете на то, как выглядят записи ACL, вы должны иметь возможность достичь хорошего решения. Следующий код собирает все записи в ACL с определенной ролью и принимает только те записи, которые имеют тип Person или Person group.

Function GetRoleMembers(roleName As String) As String 
    Dim session As New NotesSession 
    Dim db As NotesDatabase 
    Dim acl As NotesACL 
    Dim entry As NotesACLEntry 
    Dim sMembers As String 
    Set db = session.CurrentDatabase 
    Set acl = db.ACL 
    sMembers = "" 
    Set entry = acl.GetFirstEntry 
    While Not (entry Is Nothing) 
     If entry.IsRoleEnabled(roleName) And entry.IsPerson Then 
      sMembers = sMembers + entry.Name & "," 
     End If 
     Set entry = acl.GetNextEntry(entry) 
    Wend 
    GetRoleMembers = sMembers 
End Function 

Функция возвращает список разделенных запятыми всех лиц и групп с заданной ролью. Вы можете протестировать эту функцию с

Print GetRoleMembers("[Test]") 

Убедитесь, что пользователи, которых вы хотите, чтобы отправлять сообщения электронной почты присваиваются типа Person или Person group. Вы можете установить тип пользователя в ACL

enter image description here

+0

Привет, Кнут Херрманн, спасибо большое. Это сработало, и я сожалею, если этот вопрос так прост. Думаю, мне все еще нужно учиться больше, хотя я спросил об этом, так как у меня больше нет времени учиться на этот срок. Но из-за вас я ясно понял NotesACL, который я никогда не использовал в прошлых 3-х работах после начала разработки лотосных нот. Бог благословил. –

+1

Добро пожаловать. Это хорошее решение для разработки с IBM Notes Domino. Я делаю это с 1992 года. Получайте удовольствие! –

Смежные вопросы