Skip to end of metadata
Go to start of metadata

SQL запрос - действие, которое позволяет выполнить обращение к внешней базе для обмена данными.

По умолчанию действие имеет наименование "SQL запрос". Вы можете изменить его в поле Название действия. Например, укажите назначение запроса.

При необходимости добавьте условия выполнения действия. Подробнее см. параграф "5.2.12. Настройка условий выполнения IVR".

Из списка Источник данных выберите базу, к которой будет выполнен запрос.

Icon
Подключение к базе данных необходимо настроить заранее. Подробнее см. параграф "5.6. Источники данных".

В поле SQL запрос введите запрос к базе данных. Помимо прочего он может содержать:

  • переменные. Используйте следующий синтаксис: $$var, где var - имя переменной. Например, $$phones;
  • системные функции. Перечень доступных системных функций представлен в таблице ниже.
СинтаксисОписание системной функции
$$srcNumber()номер звонящего
$$dialedNumber()номер, набранный звонящим абонентом
$$dstNumber()номер ответившего на вызов
$$callStartDate()дата начала вызова в формате ДД.ММ.ГГГГ (если в настройках задан русский язык)
$$callStartTime()время начала вызова в формате ЧЧ:ММ:СС (если в настройках задан русский язык)
$$flowId()уникальный идентификатор вызова
$$chainId()уникальный идентификатор всей цепочки вызовов
$$date()текущая системная дата в формате ДД.ММ.ГГГГ (если в настройках задан русский язык)
$$time()текущее системное время в формате ЧЧ:ММ:СС (если в настройках задан русский язык)
$$weekday()название текущего дня недели: Пн, Вт, Ср, Чт, Пт, Сб, Вс (если в настройках задан русский язык)
$$isWorkingTime()функция для определения рабочего времени: 1 - рабочее время, 0 - нерабочее время (рабочее время настраивается в разделе Время и язык Панели управления)
$$isWeekend()

функция для определения выходного дня: 1 - текущий день выходной, 0 - текущий день рабочий (рабочие дни настраиваются в разделе Время и язык Панели управления)

$$inc($$var)функция инкремента числового значения переменной, где $$var - имя переменной
$$dec($$var)функция декремента числового значения переменной, где  $$var - имя переменной

Чтобы протестировать выполнение SQL запроса, нажмите кнопку Проверить.

В открывшемся окне Вы можете изменить введенный ранее запрос. Для его тестирования нажмите кнопку Проверить.  В качестве примера на изображении ниже приведены результаты выполнения запроса "select * from users where user_id = 2;", который возвращает параметры учетной записи пользователя из таблицы users с user_id = 2. Результаты выполнения запроса представлены в виде индексов. В рассматриваемом примере это organisation, emergency, archive_date, ...., user_id. При настройке условий и других действий IVR доступ к результатам запроса происходит через переменную с указанием необходимого индекса. Например, $$var.organisation, $$var.emergency, ...., $$var.user_id, где var - имя переменной. Значение $$var.organisation будет равно null, $$var.emergency = 0 и т.д.

Если в запросе была задана переменная, то в блоке Переменные будет возвращен результат в виде "Переменная - Значение".

Чтобы вернуться к настройкам действия, нажмите    в окне проверки SQL запроса.

В поле Таймаут задайте максимальное время выполнения запроса в секундах.

В поле Переменная введите имя переменной, в которую будет записан результат запроса. Имя переменной может содержать буквы латинского и русского алфавита (а-я, А-Я, a-z, A-Z), цифры (0-9) и знак подчеркивания _. Например, var1.

Имейте в виду, что запрос к базе данных не всегда может быть успешен, например, при временном отсутствии подключения к БД. Определите, какие действия IVR должны быть выполнены в следующих ситуациях:

  • Перенаправлять в случае ошибки - если в результате выполнения запроса возникнет ошибка;
  • Перенаправлять в случае таймаута - если будет превышено максимальное время выполнения запроса (таймаут);
  • Перенаправлять в случае отсутствия данных - если запрос вернёт 0 строк.

Для каждого случая укажите параметры перехода:

  • в поле IVR выберите из списка текущий или любой другой голосовой сценарий  для перехода;
  • в поле Действие - действие данного IVR, к которому будет выполнен переход.

Используйте кнопку Сохранить для сохранения настроек.  

  • No labels