Lotus Notes / Domino Designer 8 - получение имени пользователя по электронной почте

У меня есть группа пользователей, которых я добавляю в конференцию. Они содержатся как в адресной книге пользователя, так и на сервере Notes / в основной адресной книге компании. Если у меня есть адрес электронной почты пользователя, есть ли способ узнать его имя пользователя?


person Corv1nus    schedule 10.08.2010    source источник


Ответы (1)


Вы можете найти адрес электронной почты в Интернете в базе данных адресной книги и названий компании (NAB). Я полагаю, что из коробки в NAB есть представление под названием «Человек / Электронная почта в Интернете». Изнутри агента Notes вы можете использовать язык формул (используйте @DBLookup) или скрипт (используя notesView.getDocumentByKey). Или вы можете использовать COM для поиска.

В сценарии это будет выглядеть примерно так:

...
dim s as new notesSession, db as notesDatabase, vw as notesView, doc as notesDocument
set db = s.getDatabase (YOUR_SERVER, "names.nsf")
set vw = db.getView ("People\By Internet Mail")
set doc = vw.getDocumentByKey (EMAIL_ADDRESS_VALUE, true)
if not (doc is nothing) then
    sName = doc.FullName(0)
end if
....
person Ed Schembor    schedule 10.08.2010
comment
People \ By InternetMail - это не то представление, которое я могу найти. Я делаю это: Dim db As NotesDatabase Dim currentServer As New NotesName (s.CurrentDatabase.Server) Dim serverName As String serverName = currentServer.Common Set db = s.GetDatabase (serverName, names.nsf) Но это представление не вернуть что-нибудь. - person Corv1nus; 11.08.2010
comment
$ Users также имеет адрес электронной почты в Интернете в качестве ключа, так что вы можете его использовать. Поскольку вы используете ND8, вам также следует использовать класс NotesDirectory для поиска имени. Получите это с помощью метода NotesSession.GetDirectory. - person Kerr; 11.08.2010
comment
Когда я выполняю getDocumentByKey с действительным адресом, например user @ gmail.com, $ Users не может его найти. Кроме того, он возвращает пустое значение при поиске FTS для InternetAddress с использованием представления $ Users. Я сделал то же самое с NotesDirectory, используя notesDir.LookupNames ($ Users, EMAIL_ADDRESS, item, True) и получил то же самое - пусто. Есть ли еще один метод в NotesDirectory, который я должен использовать. - person Corv1nus; 11.08.2010
comment
На самом деле, у меня что-то работает. Теперь проблема в том, что если у вас есть повторяющееся имя пользователя в локальной адресной книге и на сервере заметок, оно всегда использует локальное имя. Принять это, потому что это заставило меня двигаться в правильном направлении. - person Corv1nus; 12.08.2010
comment
И, наконец, использование канонического имени исправило это для меня (вместо общего). Спасибо за вашу помощь. :) - person Corv1nus; 12.08.2010