Язык @-формул в LotusDomino R 6.

Функции, работающие с именами пользователей


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


  • В 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 )


      Содержание раздела