Функции сценариев

Каталог функций

Не все функции доступны в каждом Продукте.
Ниже приведен полный список функций системы по всем Продуктам.

Математические функции

Функция Параметры Описание

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). Параметр указывается в виде атома (не строки), например, dateadd('mi',120,"2019-10-06T13:05:28")

Возможные виды единиц по убыванию:

yy, yyyy, q, qq, m, mm, ww, wk, d, dd, h, hh, mi, n, s, ss, ms

datediff

atom,dt,dt

Возвращает число указанных единиц времени между двумя датами. Параметр указывается в виде атома (не строки), например, datediff('dd',"2019-10-06","2019-10-05")

Возможные виды единиц по убыванию:

yy, yyyy, q, qq, m, mm, ww, wk, d, dd, h, hh, mi, n, s, ss, ms

dateformat

str, dt

Возвращает строку с представление даты (п2) по указанному формату (п1). Например, yyyy-MM-dd. Возможные значения форматирующей строки:

yyyy, yy, MM, d, dd, h, HH, MMM, mm, ss, ffff, fff, ff, f, zzz.

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. Например, from, to, by.

q_displayname

только для сценария Прекоммутации обработки очередей

Возвращает displayname абонента, ожидающего коммутации с вызываемым оператором

q_domain

только для сценария Прекоммутации обработки очередей

Возвращает domain абонента, ожидающего коммутации с вызываемым оператором

q_username

только для сценария Прекоммутации обработки очередей

Возвращает username абонента, ожидающего коммутации с вызываемым оператором

queueestimatedsec

только для сценария Ожидания в очереди обработки очередей

Предполагаемое время ожидания в очереди

queueestimatedsecreal

только для сценария Ожидания в очереди обработки очередей

Фактическое время ожидания в очереди

queueposition

только для сценария Ожидания в очереди обработки очередей

Возвращает текущую позицию в очереди.

queuepriority

только для сценария Ожидания в очереди обработки очередей

Возвращает текущее числовое значение приоритета в очереди.

queuepriority(int)

только для сценария Ожидания в очереди обработки очередей

Устанавливает новое числовое значение приоритета в очереди, автоматически производится перемещение.

queuerescount

только для сценария Ожидания в очереди обработки очередей

Возвращает количество операторов в hunt-группе.

queuerescount(str)

только для сценария Ожидания в очереди обработки очередей

Возвращает количество операторов в hunt-группе, находящихся в указанном в переменной str состоянии. Возможные варианты:

  • online

  • free

queuestate

только для сценария Ожидания в очереди обработки очередей

Возвращает строку с названием состояния ожидания в очереди.

r_number

только для сценария Прекоммутации обработки очередей

Возвращает строку с номером оператора

remotenum

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

Переменные

В этом блоке находятся все объявленные в сценарии переменные. В Выражения сценариев они добавляется в [ и ] Например, переменная ABC в Выражение (и шаблоны) будет добавлена как [ABC]

Дополнительная информация

Функция 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"
}