Выражения

Материал из Oktell
Перейти к: навигация, поиск

Техническая документация / Call-центр или Администрирование / Сценарии / Выражения

Выражение — это заданная создателем сценария последовательность арифметических или строковых действий, оперирующая с константами и переменными и функциями от них. Выражение используется для подстановки в качестве аргумента в значение объектов сценария. Значением выражения могут являться строка и число. Для явного указания строки заключайте текст в кавычки. В противном случае, сначала будут вычислены все арифметические комбинации, доступные для расчета. В приведенных примерах 7 и 8 результат будет разный, то есть началом результирующей строки примера 7 будет являться символ «5», а примера 8 – символы «23».


Примеры числовых выражений:

  • [переменная_число_1] + 1
  • 2 ^ [переменная_число_2] * ( Log10 ( [переменная_число_3] ) + 2 )
  • Sin ( Len ( [переменная_строка_1] ) )

Примеры строковых выражений:

  • [переменная_строка_1] + [переменная_строка_2]
  • Кусок текста + [ переменная_строка_1]
  • "Кусок текста" + [переменная_строка_1]
  • 2 + 3 + [переменная_строка_1]
  • "2" + "3" + [переменная_строка_1]
  • SubStr ( [переменная_строка], 1, Length ( [переменная_строка] ) - 1 )
  • If ( num([a]) > 5, 'больше', 'меньше')

Для задания выражения служит соответствующая вкладка окна Аргументы. Выражения вычисляются в сценариях и результат вычисления подставляется в качестве аргумента текущего выполняемого объекта (свойства объекта) сценария.

Cl cc scra f1 3.png


Общие

Операции и подстановочные функции, доступные для использования в составе выражений:


Операция Параметры Тип возвращ. значения Описание
+ s1 + s2

x1 + x2 s + x x + s

строка

число строка строка

Если один из операндов функции является строкой, то возвращаемым значением будет строка, склеенная из двух частей. Если все операнды являются числами, результатом будет число.
- x1 - x2 число Вычитает из числа X1 число X2.
* x1 * x2 число Перемножает числа X1 и X2.
/ x1 / x2 число Делит число X1 на число X2.
^ x1 ^ x2 число Возводит число X1 в степень X2.
( ) Выставление приоритета любой арифметической операции.
% x1 % x2 число Возвращает действительный остаток от деления.
& x1 & x2

s1 & s2 x & s s & x

число

строка строка строка

Соединяет числа или строки (в строковом представлении).

Примеры: 2.16 & 3 => 2.163; "2" & 5 => "25"; 2 & -3 => "2-3"


Математические

Функции для работы со строковыми и числовыми значениями, доступные для использования в составе выражений:

Функция Параметры Тип возвращ. значения Описание
Abs (x) x - число Число Абсолютная величина числа X.
Ceil (x) x - число Число Округляет число до целого в большую сторону.
Floor (x) x - число Число Округляет число до целого в меньшую сторону.
Cos (x) x - число Число Косинус угла, определяемого параметром X в радианах.
Exp (x) x - число Число Экспонента числа X.
Lg (x),

Log10 (x)

x - число Число Десятичный логарифм числа X.
Ln (x) x - число Число Натуральный логарифм числа X.
Log (x, y) x - число

y - число

Число Логарифм числа Y по основанию X.

Если в функцию передается один параметр - возвращается его натуральный логарифм.

Max (x, y) x - число

y - число

Число Максимум из двух чисел X и Y.
Min (x, y) x - число

y - число

Число Минимум из двух чисел X и Y.
Random (x) x - число Число Случайное целое число из отрезка [0, x-1].
Round (x) x - число Число Ближайшее целое значение числа X.
Sin (x) x - число Число Синус угла, определяемого параметром X в радианах.
Sqr (x) x - число Число Квадрат числа X.
Sqrt (x) x - число Число Квадратный корень числа X.
Tan (x) x - число Число Тангенс угла, определяемого параметром X в радианах.


Строковые

Функция Параметры Тип возвращ. значения Описание
IndexOf (s1, s2) s1 - строка, s2 - строка Число Ищет подстроку S2 в строке S1 и возвращает номер позиции. Отсчет ведется с 0 символа. В случае, если подстрока не найдена, возвращается -1.
Len (s) s - строка Число Длина строки S в символах.
NewId () Строка Возвращает строковое представление вновь сгенеренного GUID-идентификатора. Например 12A5A37E-B97A-45F7-86F1-87C88DA66CBA
RegexReplace (s, s1, s2) s, s1, s2 - строка строка Возвращает строку, образованную из строки S путем замены всех встречающихся подстрок S1 на основе регулярных выражений на подстроки S2.
Пример:
RegexReplace('Имеет место быть', '[\S]+','Заменило') даст в результате строку "Заменило Заменило Заменило".
Remove (s, idx, len) s - строка,

idx - число, len - число

Строка Возвращает строку, полученную удалением из строки S символов в количестве LEN, начиная с позиции IDX. Отсчет ведется с 0 символа.
Replace (s, s1, s2) s - строка,

s1 - строка, s2 - строка

Строка Возвращает строку, образованную замещением в строке S всех встречающихся подстрок S1 на подстроки S2.
Substr (s, idx, len) s - строка,

idx - число, len - число

Строка Возвращает вырезанную из строки S подстроку длиной LEN, начиная с позиции IDX. Отсчет ведется с 0 символа.
Trim (s) s - строка Строка Возвращает строку, в которой исключены начальные и конечные пробельные символы.
TrimEnd (s) s - строка Строка Возвращает строку, в которой исключены конечные пробельные символы.
TrimStart (s) s - строка Строка Возвращает строку, в которой исключены начальные пробельные символы.


Дата/время

Функции для работы со значениями Дата/время, доступные для использования в составе выражений. В качестве параметра функций, ожидающих значения Дата/время, может быть передано значение типа Дата/время, либо строковое в установленном формате. Стандартным форматом представления даты в строке является формат «dd.MM.yyyy HH:mm:ss», либо любой другой, установленный в системе или упомянутый в конфигурационном файле серверного приложения.


Функция Параметры Тип возвращ. значения Описание
Date (d) d - дата/время или строка Дата/время Возвращает дату, сформированную на основе параметра (начало дня - время дня нулевое).
DateTime ( Y[, M[, D[, H[, m[, s[, ms]]]]]] ) Y, M, D, H, m, s, ms - числа Дата/время Возвращает дату/время, сформированную на основе переданных параметров, которые могут быть не указаны. Соответственно: год, месяц, день, час, минута, секунда, миллисекунда.
DateTime (s) s - строка Дата/время Принудительное преобразование строки к формату Дата/время.
DateFormat (s, d) s - строка

d - дата/время

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

http://msdn.microsoft.com/en-us/library/system.globalization.datetimeformatinfo.aspx

DateDiff (s, d1, d2) s - строка

d1 - дата/время d2 - дата/время

Число Возвращает временной интервал между двумя указанными датами, выраженный в указанных с помощью параметра s единицах:
  • Год - yy, yyyy
  • Квартал - qq, q
  • Месяц - mm, m
  • День в году - dy, y
  • День - dd, d
  • Неделя - wk, ww
  • Час - hh
  • Минута - mi, n
  • Секунда - ss, s
  • Миллисекунда - ms
DayOfWeek (d) d - дата/время или строка Число День недели, которому соответствует дата-параметр (1-7).
DayOfYear (d) d - дата/время или строка Число Порядковый номер дня в году.
Hour (d) d - дата/время или строка Число Час.
Millisecond (d) d - дата/время или строка Число Миллисекунда.
Minute (d) d - дата/время или строка Число Минута.
Month (d) d - дата/время или строка Число Месяц.
NowTick () Число Возвращает текущий тик системы (количество миллисекунд с момента запуска операционной системы).
Second (d) d - дата/время или строка Число Секунда.
Year (d) d - дата/время или строка Число Год.


Преобразования

Функция Параметры Тип возвращ. значения Описание
Base64Encode s - строка Строка Кодирует указанную строку в base64, используя текущую кодировку ANSI.
Base64Decode s - строка Строка Кодирует указанную строку в base64, используя кодировку UTF-8.
Base64Decode s - строка Строка Декодирует указанную строку из base64, используя текущую кодировку ANSI.
Base64DecodeUtf8 s - строка Строка Декодирует указанную строку из base64, используя кодировку UTF-8.
Char (x) x - число Строка Возвращает ANSI-символ, соответствующий коду X (0 - 255).
DecHex (x) x - число Строка Возвращает строку с HEX-представлением числа.
Eval (s) s - строка Число, строка Осуществляет расчет вложенного выражения, содержащегося в строке-параметре. Таким образом, давая возможность динамически задавать выражения вне сценария.

Примеры: Eval ( "1 + 3" ) => 4; Eval ( "Привет" ) => ошибка; Eval ( " 'Привет' ") => "Привет"; Eval ( [cтр.переменная_1] ) => результат выполнения выражения, заданного в переменной; Eval ( " [стр.переменная_1] " ) => возвращает содержимое переменной.

GuidToInt (s) s - строка Число Формирует доволно уникальное целое число на основе передаваемой строки, содержащей представление GUID-идентификатора.
HexDec (s) s - строка Число Преобразует строку к числу, рассматривая ее как HEX-представление.
HexStr (s) s - строка Строка Преобразует строку s в строку, рассматривая ее как HEX-представление.
If (x, a, b) x - логическое выражение или число

a, b - число или строка

Число, строка Выводит результат в зависимости от логического выражения.

Если x - не ноль (true), то возвращается a. Если x - ноль (false), возвращается b. В логическом выражении можно использовать операторы ==, >, <, >=, <=, &&, ||.

Примеры:
If ( num([a]) > 5, 'a больше 5', 'a меньше 5')
If ( num([a])&&num([b]), substr([callerid], 6, 5), 1)
MD5 (s) s - строка Строка Возвращает MD5 код из строки s.
Num (s) s - строка Число Принудительное преобразование строки к числу. Если строка не является корректным числом, возвращает 0.
Numval (s) s - строка Число Принудительное преобразование строки к числу. Если строка не является корректным числом, возвращает число, преобразованное из максимального количества начальных символов строки-параметра, соответствующих корректному представлению.
Str (x) x - число Строка Принудительное преобразование числа к строке.
StrHex(s) s - строка Строка Производит HEX-преобразование из строки s.
Translit (s)
s - строка Строка Транслитерация строки в латинские символы.
UrlDecode (s) s - строка Строка Декодирует указанную строку из UrlEncode, рассматривая ее как закодированную с помощью текущей кодировки ANSI.
UrlEncode (s) s - строка Строка Кодирует указанную строку в UrlEncode, используя текущую кодировку ANSI.
UrlDecodeUtf8 s - строка Строка Декодирует указанную строку из UrlEncode, рассматривая ее как закодированную с помощью UTF-8.
UrlEncodeUtf8 s - строка Строка Кодирует указанную строку в UrlEncode, используя кодировку UTF-8.


Сценарные

Функция Параметры Тип возвращ. значения Описание
ScriptFunc (s) s - строка Строка или число Возвращает значение функции из списка, указанной в параметре s. Следует указывать полное название функции.
Пример:
ScriptFunc('Текущий час')
ScriptFunc('Номер линии')


Спецсимволы

Специальные символы, доступные для использования в составе выражений:

Спецсимвол Параметры Тип возвращ. значения Описание
EndLine (),

EndLine

нет Строка Возвращает символ конца строки.
Tab (),

Tab

нет Строка Возвращает символ табуляции.
Quot (),

Quot

нет Строка Возвращает символ одинарной кавычки.
DblQuot (),

DblQuot

нет Строка Возвращает символ двойной кавычки.


Константы

Константы, доступные для использования в составе выражений:

Константа Тип возвращ. значения Описание
Pi Число Число «Пи». 3,1415926...
Fi Число Число «Фи». 1,6180339...
E Число Число «E». 2,74182818...


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


Функции без параметров можно указывать в выражении как с пустыми круглыми скобками в конце, так и без них.