Функции, работающие с именами пользователей
@V3UserName
Область применения: без ограничений.
Эта функция эквивалентна функции @UserName из версии 3.х. Более того, когда БД версии 3.х автоматически конвертируется в формат версии 4, все вызовы @UserName заменяются на вызовы @V3UserName.
Функция возвращает имя текущего пользователя или имя сервера в сокращенном формате ([Abbreviate]). При использовании @V3UserName в локальной базе данных, в частном виде базы данных на сервере или когда формула, содержащая @V3UserName, выполняется на станции, возвращается имя пользователя. Имя сервера возвращается только тогда, когда формула, содержащая @V3UserName, выполняется на сервере.
Одним из применений @V3UserName является отображение в виде только документов, имеющих отношение к текущему пользователю. Например, в базе данных заявок на обслуживание можно использовать @V3UserName в частном виде "Наряды", чтобы показывать только наряды на выполнение работ конкретного сотрудника, скрывая от него наряды остальных:
SELECT @V3UserName = AssignedTo
Однако, может быть создан другой частный вид, извлекающий все документы, поэтому нельзя полагаться на @V3UserName как на механизм соблюдения секретности.
Учтите, что не рекомендуется использовать @V3UserName в общем виде - это может привести к непредсказуемым результатам.
Пример. Формула поля формы возвращает имя текущего пользователя (под ID которого работает станция), например "Evgeny V Polyakov/ITDep/Technic/Center_TV/RU".
@V3UserName
@UserName
@UserName( порядковый_номер_имени
)
Область применения: без ограничений.
При вызове без параметров функция во всем аналогична функции @ V3UserName, но возвращает имя в каноническом формате ([Canonicalize]).
При вызове с параметром, если порядковый_номер_имени
равен нулю, возвращается основное имя, если параметр равен единице - возвращается альтернативное имя.
Пример 1. Формула поля формы возвращает имя текущего пользователя (под ID которого работает станция), например "CN=Evgeny V Polyakov/OU=ITDep/OU=Technic/O=Center_TV/C=RU".
Параметр имя используется для указания имени пользователя или сервера, над которым следует выполнить нужное преобразование. Можно задать и список имен - преобразование выполняется поэлементно и возвращается список.
Параметр [формат] задает формат возвращаемого функцией имени. Он может быть одним из следующих:
- [Abbreviate] - при этом параметре функция выделяет из "имени"
и возвращает сокращенное иерархическое имя без указателей компонентов; - [Canonicalize] - возвращается имя в каноническом формате, добавляя, если необходимо, недостающие составляющие имени вместе с их метками;
- [CN] - возвращается собственно имя без иерархических составляющих;
- [HierarchyOnly] - возвращается иерархическое имя без компоненты [CN];
- [ToKeyword] – аналогична [HierarchyOnly], но в возвращаемом значении заменяет символы слеш на обратный слеш и меняет порядок вывода компонент слева направо (т.е. сначала выводится компонента страны, затем организации и т. д.). Удобно использовать для категоризации в формулах колонок;
- [S] - возвращается компонент фамилии (last name);
- [G] - возвращается компонент имени (first name);
- [I] - возвращается компонент инициала отчества;
- [Q] - возвращается компонент префикса имени (например, Jr);
- [C] - возвращается компонент принадлежности к стране;
- [O] - возвращается компонент организации;
- [OUn] - возвращается указанная составляющая подразделения из иерархического имени; n может находиться в пределах от 1 до 4, например, OU1. В канонической записи имени составляющие OU не нумеруются; однако, они пересчитываются справа налево, так что первая встреченная метка OU воспринимается как OU1, вторая - как OU2, и т.д. Domino не воспринимает [OU] (без номера) как [формат];
- [A] - возвращается имя домена административного управления (ADMD);
- [P] - возвращается имя домена личного управления (PRMD);
- [Address821] - возвращает, если это возможно, интернет составляющую имени в формате RFC821 в не зависимости от того в каком формате был исходный адрес, в RFC821 или RFC822. Другими словами собственно интернет адрес;
- [LP] - возвращается локальная часть (LocalPart) стандартного интернет адреса по формату RFC822. Другими словами часть адреса до домена;
- [PHRASE] - возвращается описательная часть (Phrase Part) стандартного интернет адреса по формату RFC822. Другими словами часть адреса до собственно адреса.
- [ToAT] – возвращается имя LDAP AttributeType при передаче функции в качестве параметра имени Domino поля;
- [ToField] – возвращается имя Domino поля при передаче функции в качестве параметра имени LDAP AttributeType;
- [ToDatatype] – возвращается имя типа данных Domino при передаче функции в качестве параметра имени LDAP Syntax;
- [ToSyntax] – возвращается имя LDAP Syntax при передаче функции в качестве параметра имени типа данных Domino;
- [ToForm] – возвращается имя Domino формы при передаче функции в качестве параметра имени LDAP ObjectClass;
- [ToOC] – возвращается имя LDAP ObjectClass при передаче функции в качестве параметра имени Domino формы или подформы.
В R 6 появился целый ряд флагов для нахождения соответствия между информацией в Domino и LDAP:
Пример 1. Возвращает "Evgeny V Polyakov/ITDep/Technic/Center_TV/RU".
@Name( [Abbreviate]; "CN=Evgeny V
Polyakov/OU=ITDep/OU=Technic/O=Center_TV/C=RU" )
Пример 2. Возвращает "Evgeny V Polyakov". Поскольку после имени отсутствует косая черта, это не иерархическое имя, оно и в каноническом формате остается таким же.
@Name( [Canonicalize]; "Evgeny V Polyakov" )
Пример 3. Возвращает "CN=Evgeny V Polyakov/OU=ITDep/OU=Technic/O=Center_TV/C=RU ".
@Name( [Canonicalize]; "Evgeny V Polyakov/ITDep/Technic/Center_TV/RU" )
Пример 4. Возвращает "Evgeny V Polyakov".
@Name( [CN]; "Evgeny V Polyakov/ITDep/Technic/Center_TV/RU" )
Пример 5. Возвращает "ITDep/Technic/Center_TV/RU".
@Name( [HierarchyOnly]; "Evgeny V Polyakov/ITDep/Technic/Center_TV/RU" )
Пример 6. Возвращает "RU\Center_TV\Technic\ITDep".
@Name( [ToKeyword]; "Evgeny V Polyakov/ITDep/Technic/Center_TV/RU" )
Пример 7. Возвращает пустую строку, так как формат [S] предназначен для работы с внешней почтой.
@Name( [S]; @UserName )
Пример 8. Возвращает "RU".
@Name( [C]; "Evgeny V Polyakov/ITDep/Technic/Center_TV/RU" )
Пример 9. Возвращает "Center_TV".
@Name( [O]; "Evgeny V Polyakov/ITDep/Technic/Center_TV/RU" )
Пример 10. Возвращает "ITDep".
@Name( [OU2]; "Evgeny V Polyakov/ITDep/Technic/Center_TV/RU" )
Пример 11. Возвращает "tveugen@cityline.ru", если в поле From находится " "Eugene" <tveugen@cityline.ru> "
@Name( [Address821]; From )
Пример 12. Возвращает "tveugen", если в поле From находится ""Eugene" <tveugen@cityline.ru>"
@Name( [LP]; From )
Пример 13. Возвращает ""Alexander M. Sizov"", если в поле From находится ""Alexander M. Sizov" <asizov@r1.safe.inkom.ru>"
@Name( [PHRASE]; From )
Пример 14. Возвращает "givenName”.
@Name([ToAT]; "FirstName")
Пример 15. Возвращает "PhoneNumber".
@Name([ToField]; "homePhone")
Пример 16. Возвращает "Directory String".
@Name([ToSyntax]; "Text")
Пример 17. Возвращает "Number".
@Name([ToDatatype]; "Integer")
Пример 18. Возвращает "dominoServer".
@Name([ToOC]; "Server")
Пример 19. Возвращает "Database".
@Name([ToForm]; "dominoServerMailInDatabase")
@UserNameLanguage( порядковый_номер_языка
)
Область применения: В DOMINO R 6.0.1 НЕ ДОКУМЕНТИРОВАНА.
При параметре порядковый_номер_языка равном 1 возвращает тег альтернативного языка, ассоциированного с ID-файлом текущего пользователя. Если порядковый_номер_языка равен 0, возвращается пустая строка.
Пустая строка также возвращается, если пользователь не имеет альтернативного имени.
Пример. Функция может вернуть значение "ru".
@UserNameLanguage( 1 )