Другие функции

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

Функция

Описание

Тип результата

catch(Object normalResult [, Object errorResult])

Функция рассчитывает аргумент normalResult и возвращает его, если оценка прошла успешно. Однако если во время расчета normalResult произошла ошибка, поведение отличается:

  • Если errorResult не определен, возвращается текст расчета ошибки normalResult

  • Если errorResult определен, то он сам и возвращается

Object

evaluate(String expression [, String defaultContext [, DataTable defaultTable [, Integer defaultRow]]])

Обрабатывает строковый аргумент как выражение SberMobile и возвращает результат. Использует кастомные defaultContext, defaultTable и defaultRow, если есть.

Object

fetchDataBlock(DataBlock data)

Возвращает данные кодированными байтами бинарного блока,     извлеченными из  базы данных.

DataBlock

ld(String variable)

Возвращает значение локальной переменной среды под названием переменная. Эта переменная может определяться лишь вызовом функции st(). Внешние (нелокальные) переменные среды возвращаться не будут, на них можно сослаться через {env/variable}.

Object

login()

Возвращает имя логина текущего пользователя (например, john@company.com).

В отличие от функции user(), эта функция возвращает имя пользователя, которое было использовано при внешней  аутентификации (например, через Active Directory или LDAP).

Если внешняя аутентификация не применялась, эта функция возвращает значение пользователя SberMobile Server, т.е. работает так же, как функция user()

String

script(String name, Object parameter1, Object parameter2, ...)

Вызывает скрипт виджета под названием имя и передает ему несколько параметров. Возвращает объект вывода скрипта.

Эта функция доступна только в выражениях привязки виджета.

Object

sleep(Integer milliseconds)

Приостанавливает процесс обработки выражения на определенное количество миллисекунд.

Null

st(String variable, Object value)

Определяет или обновляет локальную переменную среды под названием переменная путем ее установки на значение. Также возвращает значение.

Эта функция полезна для повторного использования определенных частей выражения с целью оптимизации производительности оценки и ее большей компактности.

Пример: st('var', {a} *  {b} * {c} * {d} * {e}) > 50 ? ld('var') : -1

Это выражение возвращает умножение полей a, b, c, d и e, если они больше, чем 50, в другом случае -1. Однако умножение рассчитывается лишь один раз и хранится в локальной переменной среды под названием var.

Object

trace(Object value [, String message])

Записывает значение, сопровождаемое сообщением, как системное событие для включения отладки выражений. Возвращает неизмененное значение.

Object

user()

Возвращает имя текущего пользователя (например, admin или john), т.е. учетную запись пользователя, чьи права доступа используются во время оценки выражения.

В отличие от функции login(), эта функция возвращает имя локального аккаунта пользователя, а не имя логина, использованного при внешней  аутентификации (например, через Active Directory или LDAP).

String

xpath(String xml, String query [, Boolean table])

Принимает XML документ в качестве ввода и вычисляет по нему запрос XPath. Запрос может быть оценен в строку (это поведение по умолчанию) или таблицу данных (если параметр таблица верен). Табличный режим следует использовать, если запрос вычисляется в набор узлов, не только содержание текста одного узла или значение атрибута.

Таблица, возвращенная в табличном формате, имеет три поля:

  • Имя. Имя узла.

  • Контекст. Содержание узла текста.

  • Дочерние узлы. Таблица дочерних узлов данного узла. Имеет такой же формат.

Object