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

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

Функция

Описание

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

Поддержка бэкенда

Поддержка фронтенда

and(Boolean condition1 [, Boolean condition2, ...])

Возвращает true если все указанные условия являются true.

Boolean

Да

Нет

case(Object defaultResult, Boolean condition1, Object result1 [, Boolean condition2, Object result2, ...])

Возврат result1, если condition1 истинно, возврат result2, если condition2 истинно, и так далее. Если ни одно из условий не является истинным, возврат defaultResult.

Объект

Да

Нет

catch(Object normalResult [, Object errorResult])

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

  • Если errorResult не указан, возвращается текст ошибки оценки normalResult.

  • Если errorResult указан, то вместо него возвращается

Объект

Да

Да

dataBlock(Object value[, String charset[, String name]])

Создает новый DataBlock из строкового значения с использованием предоставленной кодировки (или кодировки по умолчанию, если кодировка не указана). Если указано человекочитаемое имя, добавляет его в блок данных.

DataBlock

Да

Нет

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

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

Объект

Да

Да

fail(Boolean condition, String message[, Object result])

Завершит оценку выражения с предоставленным сообщением об ошибке, если условие истинно. Если условие ложно, возврат предоставленного result или null.

Объект

Да

Нет

fetchDataBlock(DataBlock data)

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

DataBlock

Да

Да

if(Boolean condition, Object resultIfTrue, Object resultIfFalse)

Возврат resultIfTrue, если condition является истинным, иначе возвращает значение resultIfFalse.

Объект

Да

Нет

ld(String variable)

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

Объект

Да

Да

login()

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

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

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

String

Да

Да

or(Boolean condition1 [, Boolean condition2, ...])

Возвращает true если хотя бы одно указанное условие является true.

Boolean

Да

Нет

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

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

Объект

Да

Да

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

sleep(Integer milliseconds)

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

Null

Да

Да

st(String variable, Object value)

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

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

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

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

Объект

Да

Да

trace(Object value [, String message])

Регистрирует значение value, сопровождаемое сообщением message, как системное событие для отладки выражения. Возврат неизмененного значения value.

Объект

Да

Да

user()

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

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

String

Да

Да

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

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

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

  • Название. Название узла.

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

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

Объект

Да

Да