Другие функции
Текущий раздел описывает функции языка выражения, которые не могут быть включены ни в один другой раздел.
Функция
Описание
Тип результата
Поддержка бэкенда
Поддержка фронтенда
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). Табличный режим следует использовать, если запрос оценивает набор узлов, а не только текстовое содержимое или значение атрибута одного узла.
Таблица, возвращаемая в табличном режиме, имеет три поля:
Название. Название узла.
Контекст. Текстовое содержимое узла.
Потомки. Таблица дочерних узлов узла. Имеет тот же формат.
Объект
Да
Да