Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Polyakov.doc
Скачиваний:
20
Добавлен:
02.12.2018
Размер:
5.13 Mб
Скачать
    1. Функции, работающие с именами пользователей

@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".

@UserName

Пример 2. Формула поля формы возвращает альтернативное имя текущего пользователя (под ID которого работает станция), например "CN=Евгений В Поляков/OU=ОтделИТ/OU=ТехДирекция/O=ТВЦентр/C=RU".

@UserName( 1 )

@Name( [формат]; имя )

@Name( [формат]; список_имен )

Область применения: без ограничений. При использовании с именами, полученными из адресных книг Lotus Notes/Domino, не работают форматы [A], [G], [I], [P], [Q] и [S]. Они предназначены для работы с именами адресов, пришедших из внешней (не Lotus Notes/Domino) почты.

Функция позволяет оперировать с иерархическими именами. Иерархические имена доступны в версиях Notes/Domino, начиная с 3.0. С помощью @Name можно преобразовывать иерархическое имя в различные форматы или возвращать конкретные составляющие имени.

Иерархическое имя состоит из ряда составляющих, включающих полное имя, подразделение, организацию и страну. Использование иерархических имен гарантирует, что каждый пользователь или сервер имеет свое неповторимое имя.

Разработчик базы данных отвечает за управление вводом и отображение имен пользователей в приложениях Notes/Domino. Он может предложить пользователям вводить имена в сокращенном формате, а затем с помощью @Name развернуть имена до канонического формата. И наоборот, можно отображать имена в сокращенном формате, используя @Name для преобразования хранимых в каноническом формате имен в сокращенный формат.

Если используются поля типа Names, Authors или Readers, Domino автоматически преобразует введенные в них иерархические имена в соответствующий формат для отображения и хранения. Если пользователь вводит имя в сокращенном формате, при сохранении имени Domino преобразует его в канонический формат. Имя всегда отображается в поле типа Names, Authors или Readers в сокращенном формате.

Если в виде отображается информация из поля, содержащего иерархическое имя, автоматическое преобразование отсутствует - имя выводится в каноническом формате. При желании можно преобразовать это имя в сокращенный формат с помощью @Name.

Параметр имя используется для указания имени пользователя или сервера, над которым следует выполнить нужное преобразование. Можно задать и список имен - преобразование выполняется поэлементно и возвращается список.

Параметр [формат] задает формат возвращаемого функцией имени. Он может быть одним из следующих:

  • [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. Другими словами часть адреса до собственно адреса.

В R 6 появился целый ряд флагов для нахождения соответствия между информацией в Domino и LDAP:

  • [ToAT] – возвращается имя LDAP AttributeType при передаче функции в качестве параметра имени Domino поля;

  • [ToField] – возвращается имя Domino поля при передаче функции в качестве параметра имени LDAP AttributeType;

  • [ToDatatype] – возвращается имя типа данных Domino при передаче функции в качестве параметра имени LDAP Syntax;

  • [ToSyntax] – возвращается имя LDAP Syntax при передаче функции в качестве параметра имени типа данных Domino;

  • [ToForm] – возвращается имя Domino формы при передаче функции в качестве параметра имени LDAP ObjectClass;

  • [ToOC] – возвращается имя LDAP ObjectClass при передаче функции в качестве параметра имени Domino формы или подформы.

Пример 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 )

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]