Функции сценариев
На этой странице
Каталог функций
Не все функции доступны в каждом Продукте
Ниже приведен полный список функций системы по всем Продуктам.
Математические функции
Функция | Параметры | Описание |
abs | num | Абсолютное значение числа |
acos | num | Арккосинус числа |
asin | num | Арксинус числа |
atan | num | Арктангенс числа |
atan2 | num, num | Арктангенс частного двух чисел |
ceil | num | Ближайшее сверху целое число |
cos | num | Косинус числа |
cosh | num | Гиперболический косинус числа |
erf | num | Функция ошибки (интеграл вероятности) |
erfc | num | Дополнительная функция ошибок |
exp | num | Экспонента числа |
floor | num | Ближайшее снизу целое число |
lg | num | Десятичный логарифм числа |
ln | num | Натуральный логарифм числа |
log | num, num | Логарифм одного числа по основанию другого |
log10 | num | Десятичный логарифм числа |
log2 | num | Двоичный логарифм числа |
max | num, num | Максимальное из двух чисел |
min | num, num | Минимальное из двух чисел |
pow | num, num | Результат возведения одного числа в степень другого |
random | Случайное десятичное число от 0 до 1 | |
random | int | Случайное целое число от 0 до указанного целого числа |
random | int, int | Случайное целое число в диапазоне между двумя целыми числами |
round | num | Результат округления числа до целого |
sin | num | Синус числа |
sinh | num | Гиперболический синус числа |
sqr | num | Квадрат числа |
sqrt | num | Квадратный корень числа |
tan | num | Тангенс числа |
tanh | num | Гиперболический тангенс числа |
trunc | num | Результат отбрасывания дробной части числа |
Строковые функции
Функция | Параметры | Описание |
concat | str,str | Возвращает результат сцепления двух строк. |
equal | str,str | Результат сравнения двух строк: 0 или 1 |
indexof | str,str,int | Возвращает индекс позиции первого вхождения подстроки (п2) в строку (п1), начиная с указанной позиции (п3). Возвращает 0, если вхождений не обнаружено. |
left | str,int | Возвращает левую часть строки не более чем указанной длины. |
len | str | Возвращает длину строки в символах. |
lower | str | Возвращает строку в нижнем регистре. |
modify_json | str,json,json | Возвращает измененную json-структуру. Подробнее в Функция modify json |
newid | Возвращает сгенерированный UUID-идентификатор. | |
regexreplace | str,str,str | Возвращает результат замены с помощью регулярного выражения. п1 - значение, п2 - паттерн, п3 - замена. |
regexreplaceg | str,str,str | Возвращает результат замены с помощью регулярного выражения с опцией global. п1 - значение, п2 - паттерн, п3 - замена. |
remove | str,int | Возвращает строку после удаления из нее подстроки с указанной позиции (п2) до конца. |
remove | str,int,int | Возвращает строку после удаления из нее подстроки с указанной позиции (п2) указанной длины (п3). |
replace | str,str,str | Возвращает результат замены в строке (п1) вхождения (п2) на значение (п3). |
reverse | str | Возвращает перевернутую строку. |
right | str,int | Возвращает правую часть строки не более чем указанной длины. |
rstr | str,str | Возвращает индекс позиции последнего вхождения подстроки (п2) в строку (п1). Возвращает 0, если вхождений не обнаружено. |
str | str,str | Возвращает индекс позиции первого вхождения подстроки (п2) в строку (п1). Возвращает 0, если вхождений не обнаружено. |
substr | str,int | Возвращает подстроку с указанной позиции (п2) до конца. |
substr | str,int,int | Возвращает подстроку с указанной позиции (п2) не более чем указанной длины (п3). |
trim | str | Возвращает строку, избавленную от пустых символов в начале и в конце (пробел, табуляция и т.д.). |
trimend | str | Возвращает строку, избавленную от пустых символов в конце (пробел, табуляция и т.д.). |
trimstart | str | Возвращает строку, избавленную от пустых символов в начале (пробел, табуляция и т.д.). |
upper | str | Возвращает строку в верхнем регистре. |
Функции по работе с датами/временем
Функция | Параметры | Описание |
date | Возвращает текущую дату в локальном часовом поясе сервера без указания часового пояса. Формат YYYY-MM-DD. | |
date | dt | Возвращает дату из указанной даты/времени. |
dateadd | atom,int,dt | Возвращает дату после добавления указанного количества (п2) указанных единиц времени (п1) к указанной дате/времени (п3). Параметр указывается в виде атома (не строки), например, Возможные виды единиц по убыванию:
|
datediff | atom,dt,dt | Возвращает число указанных единиц времени между двумя датами. Параметр указывается в виде атома (не строки), например, Возможные виды единиц по убыванию:
|
dateformat | str, dt | Возвращает строку с представление даты (п2) по указанному формату (п1). Например, yyyy-MM-dd. Возможные значения форматирующей строки:
|
datetime | int,int,int | Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня. |
datetime | int,int,int,int,int | Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня, п4 - часа, п5 - минуты. |
datetime | int,int,int,int,int,int | Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня, п4 - часа, п5 - минуты, п6 - секунды. |
datetime | int,int,int,int,int,int,int | Возвращает дату/время на основе переданных п1 - года, п2 - месяца, п3 - дня, п4 - часа, п5 - минуты, п6 - секунды, п7 - миллисекунды. |
datetime | str | Возвращает дату/время, сформированную по строке. Строка может содержать различные представления даты/времени, в том числе и RFC3339. |
datetimelocal | dt | Возвращает дату/время приведенную к локальному часовому поясу сервера. Числовые значения даты/времени не изменяются, однако абсолютная точка времени может быть сдвинута после изменения тайм-зоны на локальную. |
datetimeutc | dt | Возвращает дату/время приведенную к UTC. Числовые значения даты/времени не изменяются, однако абсолютная точка времени может быть сдвинута после изменения тайм-зоны на нулевую. |
day | dt | Возвращает текущий день (1-31) указанной даты/времени. |
dayofweek | dt | Возвращает номер дня недели (1-7) для указанной даты/времени. |
dayofyear | dt | Возвращает номер дня в году для указанной даты/времени. |
hour | dt | Возвращает текущий час (0-23) указанной даты/времени. |
isleapyear | int | Возвращает true, если указанная дата/время представляет високосный год. |
localtoutc | dt | Возвращает UTC дату/время для указанной даты/времени, рассматриваемой в локальном часовом поясе сервера. |
millisecond | dt | Возвращает текущую миллисекунду (0-999) указанной даты/времени. |
minute | dt | Возвращает текущую минуту (0-59) указанной даты/времени. |
month | dt | Возвращает текущий месяц (1-12) указанной даты/времени. |
now | Возвращает текущую дату и время в локальном часовом поясе сервера в формате RFC3339. Например, 2019-10-06T16:43:30.46+03:00. | |
nowgregsecond | Возвращает количество секунд по грегорианскому календарю, с 0 года н.э. | |
nowtick | Возвращает число, представляющее абсолютное значение в миллисекундах с 01.01.1970 года до текущего времени сервера. | |
nowutc | Возвращает текущую дату и время в UTC в формате RFC3339. | |
second | dt | Возвращает текущую секунду (0-59) указанной даты/времени. |
ticktolocal | int | Возвращает дату в локальном часовом поясе сервера по абсолютному значению tick. |
ticktoutc | int | Возвращает дату в UTC по абсолютному значению tick. |
time | Возвращает текущее время в локальном часовом поясе сервера без указания часового пояса. Формат HH:mm:ss.fff. | |
time | dt | Возвращает время из указанной даты/времени. |
utctolocal | dt | Возвращает локальную дату/время для указанной даты/времени, рассматриваемой как UTC. |
valid_date | dt | Возвращает true, если указанная строка содержит корректную дату/время, иначе false. |
weekofyear | dt | Возвращает номер недели в году для указанной даты/времени. |
year | dt | Возвращает текущий год указанной даты/времени. |
Функции преобразования
Функция | Параметры | Описание |
base64decode | str | Возвращает строку, полученную в результате распаковки из Base-64 представления. |
base64encode | str | Возвращает строку, полученную в результате упаковки в Base64 представление. |
char | str | Возвращает строку с одним символом по его числовому коду. |
dechex | int | Возвращает строку с HEX-представлением числа. |
escape | str | Возвращает строку, полученную в результате преобразования к escape-последовательности. Применяется для вставки в JSON. |
hexdec | str | Возвращает число на основе его HEX-представления. |
htmldecode | str | Возвращает строку, раскодированную c помощью Unicode Hex Character Code |
htmlencode | str | Возвращает строку, закодированную c помощью Unicode Hex Character Code. |
ifelse | bool,any,any | Если значение первого параметра true, то возвращает п2, иначе возвращает п3. |
num | str | Преобразует строку к числу. При неудаче завершается с ошибкой. |
numval | str | Преобразует строку к числу, отрезая с конца неподходящие символы. В пределе возвращает 0. |
str | int | Преобразует числовое значение к строке. |
translit | str | Возвращает результат транслитерации строки. |
unescape | str | Возвращает строку, полученную в результате распаковки из escape-последовательности. Применяется для очистки после JSON. |
urldecode | str | Возвращает строку, раскодированную с помощью UrlEncode. |
urlencode | str | Возвращает строку, закодированную с помощью UrlEncode. |
Хеш-суммы
Функция | Параметры | Описание |
adler32 | any | Хеш от любого значения по алгоритму Adler-32. |
adler32 | num,any | Новое значение хеша от предыдущего значения, скомбинированного с новой порцией. п1 - предыдущее значение хеша, п2 - новая порция данных. По алгоритму Adler-32. |
crc32 | any | Хеш от любого значения по алгоритму CRC32 (IEEE 802.3). |
crc32 | num,any | Новое значение хеша от предыдущего значения, скомбинированного с новой порцией. п1 - предыдущее значение хеша, п2 - новая порция данных. По алгоритму CRC32 (IEEE 802.3). |
md5 | str | Хеш от строки по алгоритму MD5. |
phash2 | any | Хеш-сумму от любого значения по внутреннему алгоритму. |
Функции по работе с файловыми путями
Функция | Параметры | Описание |
filedir | str | Возвращает название каталога. Для пути к файлу - это имя каталога, для пути к каталогу - это название родительского каталога. |
fileext | str | Возвращает расширение файла, выделенное из указанного пути. |
filename | str | Возвращает имя файла, выделенное из указанного пути. |
gs_domain | Возвращает :GLOBALSHARE_DOMAIN_DATA - префикс категории сетевого межсайтового каталога текущего домена. | |
gs_public | Возвращает :GLOBALSHARE_PUBLIC - префикс категории сетевого межсайтового каталога общего назначения. | |
gs_script | Возвращает :GLOBALSHARE_SCRIPT_DATA - префикс категории сетевого межсайтового каталога текущего сценария (по коду). | |
makepath | str,str | Возвращает путь, сформированный в результате сцепки двух частей. |
makepath | str,str,str | Возвращает путь, сформированный в результате сцепки трех частей. |
pathtype | str | Возвращает тип пути (префикс категории из указанного пути). |
relpath | str | Возвращает относительный путь (указанный путь без префикса категории). |
ss_domain | Возвращает :SITESHARE_DOMAIN_DATA - префикс категории сетевого внутрисайтового каталога текущего домена. | |
ss_public | Возвращает :SITESHARE_PUBLIC - префикс категории сетевого внутрисайтового каталога общего назначения. | |
ss_script | Возвращает :SITESHARE_SCRIPT_DATA - префикс категории сетевого внутрисайтового каталога текущего сценария (по коду). | |
syn_domain | Возвращает :SYNC_DOMAIN_DATA префикс категории синхронизирующегося каталога данных домена. | |
syn_media | Возвращает :SYNC_COMMON - префикс категории синхронизирующегося каталога общего назначения. | |
syn_script | Возвращает :SYNC_SCRIPT_DATA префикс категории синхронизирующегося каталога данных текущего сценария (по коду). | |
syn_script_media | Возвращает :SYNC_SCRIPT_STATIC префикс категории синхронизирующегося каталога статических файлов сценария (по коду). | |
temp | Возвращает :TEMP - префикс временного локального каталога сценария. |
Служебные функции
Функция | Параметры | Описание |
getscriptref | Возвращает строку с идентификатором текущего обработчика сценариев. По этому идентификатору обработчику могут отправлять сообщения другие обработчики сценариев, например, с помощью компонента Взаимодействие сценариев. | |
startparam | int | Возвращает значение входного параметра с указанным индексом. Сценарии могут принимать до 20 входных параметров. |
Функции Доступа
Функция | Параметры | Описание |
check_variable | str | Возвращает true, если переменная c указанным именем существует и содержит значение. |
get_variable_id | str | Возвращает строку с идентификатором переменной по её имени. |
get_variable_orig | str | Возвращает значение переменной по её имени, причем, если значение строковое, то оно возвращается в исходной кодировке без преобразования. |
get_variable_value | str | Возвращает значение переменной по её имени. |
var | str | Возвращает значение переменной по её имени. |
Функции конфигурации
Функция | Параметры | Описание |
wsurl | Возвращает URL ближайшего доступного сервера с логической ролью ws. В формате proto://ip-address:port. |
Константы
Функция | Параметры | Описание |
e | Возвращает число e (2.718281828459045). | |
phi | Возвращает число phi (1.618033988749895). | |
pi | Возвращает число pi (3.141592653589793). |
Символы
Функция | Параметры | Описание |
dblquot | Возвращает строку с символом двойной кавычки. | |
endline | Возвращает строку с символом конца строки. | |
quot | Возвращает строку с символом кавычки. | |
tab | Возвращает строку с символом табуляции. |
Функции сценариев IVR
Функция | Примечание | Описание |
calledext | только для вызовов, поступивших в IVR | Возвращает строку с расширением КАФ, по которому звонок поступил в IVR. |
callednum | только для вызовов, поступивших в IVR | Возвращает строку с набранным абонентом номером. |
callid | Возвращает строку со значением заголовка CallId плеча b2b - ivr текущего разговора | |
huntid | только для сценариев | Возвращает строку с идентификатором сущности hunt-группы, на которую направлен вызов. |
huntobjid | только для сценариев | Возвращает текущий статус блокировки объекта в очереди (0 - не заблокирован, 1 - заблокирован). |
queueblocked | только для сценария | Возвращает строку с идентификатором текущего абонента очереди hunt-группы. |
queueblocked(int) | только для сценария | Выставляет текущий статус блокировки объекта в очереди (0 - снять блокировку, 1 - установить). Возвращает успешность блокировки ("success" - успешно, "error" - неудача). Объект не может быть заблокирован, если уже находится в обработке. |
queuepositionreal | только для сценария | Возвращает текущую позицию в очереди с учётом queueblocked (считая их). |
ivrparam(str) | только для вызовов, поступивших в IVR. | Возвращает значение указанного параметра из заголовка X-R-Ivr, который формируется ролью b2b. Например, |
q_displayname | только для сценария | Возвращает displayname абонента, ожидающего коммутации с вызываемым оператором |
q_domain | только для сценария | Возвращает domain абонента, ожидающего коммутации с вызываемым оператором |
q_username | только для сценария | Возвращает username абонента, ожидающего коммутации с вызываемым оператором |
queueestimatedsec | только для сценария | Предполагаемое время ожидания в очереди |
queueestimatedsecreal | только для сценария | Фактическое время ожидания в очереди |
queueposition | только для сценария | Возвращает текущую позицию в очереди. |
queuepriority | только для сценария | Возвращает текущее числовое значение приоритета в очереди. |
queuepriority(int) | только для сценария | Устанавливает новое числовое значение приоритета в очереди, автоматически производится перемещение. |
queuerescount | только для сценария | Возвращает количество операторов в hunt-группе. |
queuerescount(str) | только для сценария | Возвращает количество операторов в hunt-группе, находящихся в указанном в переменной str состоянии. Возможные варианты:
|
queuestate | только для сценария | Возвращает строку с названием состояния ожидания в очереди. |
r_number | только для сценария | Возвращает строку с номером оператора |
remotenum | Возвращает строку с номером абонента, сформированным в результате применения правил представления. |
Переменные
В этом блоке находятся все объявленные в сценарии переменные. В Выражения сценариев они добавляется в [ и ] Например, переменная ABC в Выражение (и шаблоны) будет добавлена как [ABC]
Дополнительная информация
Функция modify json
Функция modify json
modify_json(п1 str,п2 json,п3json)
Применяет поисковый запрос (п1) к значению (п2), обнаруженный элемент подвергает модификации согласно опциям (п3) и возвращает общий результат.
Пример:
modify_json( "\"chat\"/0/\"msgs\"", "{\"chat\":[{\"msgs\": [{\"txt\":\"abc\"}]}]}", "{\"action\":\"append\",\"value\":{\"txt\":\"zcv\"}}" )
Опции представлены в виде json-объекта с обязательным ключом action. Возможные варианты:
append - для массива. Добавляет новый элемент в конец. В опциях значение элемента по ключу value.
prepend - для массива. Добавляет новый элемент в начало. В опциях значение элемента по ключу value
insert - для массива. Добавляет новый элемент в указанную позицию. В опциях значение элемента по ключу value, позиция по ключу index.
replace - для массива. Заменяет элемент в указанной позиции на новый. В опциях значение нового элемента по ключу value, позиция по ключу index.
replace_auto - для массива. Заменяет все элементы массива на указанное значение. В опциях значение по ключу value.
delete - для массива. Удаляет элемент из указанной позиции. В опциях значение позиции по ключу index.
keystore - для объекта. Сохраняет элемент по указанному ключу, в зависимости от наличия ключа добавляет или изменяет значение. В опциях значение элемента по ключу value, значение ключа по ключу key.
keyreplace - для объекта. Заменяет элемент по указанному ключу, а если ключ отсутствует, то оставляет без изменений. В опциях значение элемента по ключу value, значение ключа по ключу key.
keyinsert - для объекта. Сохраняет элемент по указанному ключу, если он отсутствует, а иначе завершается с ошибкой. В опциях значение элемента по ключу value, значение ключа по ключу key.
keydelete - для объекта. Удаляет элемент по указанному ключу. В опциях значение ключа по ключу key.
Примеры.
Исходная переменная x
{ "name": "Андрей Васильев", "id": "1377340472378151" }
Пример 1. Keyinsert
Добавлено в json ключа "channel" со значением "test".
modify_json( "", [x], "{\"action\":\"keyinsert\", \"key\":\"channel\", \"value\":\"\\\"test\\\"\"}" )
Результат
{ "channel":"test", "name":"Андрей Васильев", "id":"1377340472378151" }
Если Key channel существует до выполнения modify_json, то результат будет Ошибка
Пример 2. Keyreplace
Заменена значения у поля name.
modify_json( "", [x], "{\"action\":\"keyreplace\", \"key\":\"name\", \"value\":\"\\\"test\\\"\"}" )
Результат
{ "name":"test", "id":"1377340472378151" }