Приём показаний приборов учёта. Инструкция: различия между версиями
McBurns (обсуждение | вклад) |
McBurns (обсуждение | вклад) |
||
Строка 71: | Строка 71: | ||
select * from `Account` where `Account`='[Account]' | select * from `Account` where `Account`='[Account]' | ||
при указанном лицевом счёте 123456789 будет выполнен запрос: | во время работы сценария при указанном лицевом счёте 123456789 будет выполнен запрос: | ||
select * from `Account` where `Account`='123456789' | select * from `Account` where `Account`='123456789' | ||
Строка 79: | Строка 79: | ||
==Получение списка приборов учёта по лицевому счёту== | ==Получение списка приборов учёта по лицевому счёту== | ||
После того, как [[#Получение номера лицевого счёта от абонента|лицевой счёт получен]] и [[#Поиск лицевого счёта в базе данных|найден в базе данных]], выполняется SQL-запрос, указанный на странице настроек '''«Поиск доступных приборов учёта»'''. В SQL-запросе можно использовать все ранее полученные переменные из области действия сценария. | |||
Например, если задать запрос: | |||
select * from `Counter` where Account ='[Account]' order by `CounterName` | |||
во время работы сценария при указанном лицевом счёте 123456789 будет выполнен запрос: | |||
select * from `Counter` where Account ='123456789' order by `CounterName` | |||
Запрос получает список приборов учёта по указанному лицевому счёту. На странице настроек необходимо указать поле «Название прибора учёта», содержимое этого поля при выполнении сценария добавляется в переменную '''[CounterName]''' и в дальнейшем может использоваться в SQL-запросах или в голосовых сообщениях для подстановки значения. | |||
==Приём показаний по каждому прибору учёта из списка== | ==Приём показаний по каждому прибору учёта из списка== | ||
==Проверка полученных показаний== | ==Проверка полученных показаний== | ||
==Запись принятых показаний в базу данных== | ==Запись принятых показаний в базу данных== | ||
==Прощальное сообщение== | ==Прощальное сообщение== |
Версия 05:18, 21 декабря 2015
Основной алгоритм работы
- Произнесение приветственого сообщения.
- Ожидание выбора способа передачи показаний.
- Если номер телефона определён, выполняется запрос на поиск лицевого счёта по номеру телефона.
- Если номер лицевого счёта по номеру телефона не получен, выполняется получение номера лицевого счёта от абонента.
- Если лицевой счёт получен, выполняется запрос на поиск лицевого счёта в базе данных.
- Если лицевой счёт найден в базе данных, выполняется запрос на получение списка приборов учёта по этому лицевому счёту.
- По каждому прибору учёта из списка принимаются показания.
- Принятые показания проверяются и, если проверка прошла успешно, записываются в базу данных.
- Произносится прощальное сообщение.
Пошаговая настройка
Вступительное сообщение
В этом сообщении абонент получает информацию о том, каким образом будет происходить приём показаний.
Необходимо объяснить, что при нажатии любой клавиши на телефоне в тональном режиме приём показаний будет происходить путём распознавания нажатых клавиш, иначе — путём распознавания голоса.
Ожидание выбора способа передачи показаний
В область действия сценария добавляется переменная [IsVoice], она имеет значение true, если выбрана передача показаний голосом, или false, если выбрано получение показаний путём нажатия клавиш телефона. В дальнейшем эту и любые другие переменные, добавленные в область действия сценария можно использовать как в запросах, так и в голосовых сообщениях. Например, для выбора сообщения, которое будет произноситься абоненту.
Запрос на поиск лицевого счёта по номеру телефона
Если у ваших абонентов есть жёсткая привязка лицевого счёта к номеру телефона, используйте запрос на странице «Поиск лицевого счета по номеру телефона». Если такой привязки нет, запрос можно оставить пустым, и поиск по номеру телефона производиться не будет.
В запросе необходимо в обязательном порядке получить поле с номером лицевого счёта, которое выбирается на странице настроек ниже. Для подстановки в запрос номера телефона, который определился у абонента, используйте переменную [InPhone].
Например, если задать запрос:
select * from `Account` where `Phone`='[InPhone]'
при звонке с номера 2222201 будет выполнен запрос:
select * from `Account` where `Phone`='2222201'
На этой же странице можно ввести для проверки номер телефона, который будет подставлен вместо переменной [InPhone] после нажатия кнопки «Проверить». Результат выполнения запроса будет выведен в виде таблицы в поле «Результаты запроса».
Во время работы сценария выполняется поиск по номеру телефона. В случае, если запись с лицевым счётом найдена, в область действия сценария добавляется переменная [Account], содержащая номер лицевого счёта.
При получении только одной записи в результате выполнения запроса при работе сценария лицевой счёт считается определённым и дополнительно не спрашивается у абонента.
Если не получено ни одной записи, или получено две и более записей, сценарий предлагает абоненту указать лицевой счёт.
Получение номера лицевого счёта от абонента
Произносится голосовое сообщение, заданное на странице «Получение лицевого счёта». В поле «Выражение» можно использовать переменную [IsVoice]. Например:
([IsVoice]? 'Назовите номер лицевого счёта' : 'Введите номер лицевого счёта и нажмите звёздочку')
В случае, если идёт приём показаний голосом ([IsVoice] = true), произносится: «Назовите номер лицевого счёта». Иначе: «Введите номер лицевого счёта и нажмите звёздочку».
После произнесения сообщения сценарий в течение 18 секунд ожидает произнесения номера лицевого счёта или нажатия клавиш на телефоне.
В область действия сценария добавляется переменная [Account], содержащая полученное значение лицевого счёта, которую можно в дальнейшем использовать в SQL-запросах или в поле «Выражение» голосовых сообщений
Если лицевой счёт не получен или данные по нему не найдены в базе данных, произносится сообщение «Не получены данные лицевого счёта», сценарий ещё два раза запрашивает у абонента лицевой счёт.
Если лицевой счёт не получен или не найден в базе данных после трёх попыток, сценарий переходит к прощальному сообщению.
При получении данных лицевого счёта сценарий переходит к получению списка приборов учёта.
Поиск лицевого счёта в базе данных
На странице настроек «Поиск по номеру лицевого счёта» указывается SQL-запрос на получение данных по номеру лицевого счёта. Для подстановки в запрос значение номера лицевого счёта, указанного абонентом или определившегося по номеру телефона, используется переменная [Account].
Например, если задать запрос:
select * from `Account` where `Account`='[Account]'
во время работы сценария при указанном лицевом счёте 123456789 будет выполнен запрос:
select * from `Account` where `Account`='123456789'
Если получена запись с номером лицевого счёта, в сценарий возвращается эта запись, иначе возвращается значение null.
Получение списка приборов учёта по лицевому счёту
После того, как лицевой счёт получен и найден в базе данных, выполняется SQL-запрос, указанный на странице настроек «Поиск доступных приборов учёта». В SQL-запросе можно использовать все ранее полученные переменные из области действия сценария.
Например, если задать запрос:
select * from `Counter` where Account ='[Account]' order by `CounterName`
во время работы сценария при указанном лицевом счёте 123456789 будет выполнен запрос:
select * from `Counter` where Account ='123456789' order by `CounterName`
Запрос получает список приборов учёта по указанному лицевому счёту. На странице настроек необходимо указать поле «Название прибора учёта», содержимое этого поля при выполнении сценария добавляется в переменную [CounterName] и в дальнейшем может использоваться в SQL-запросах или в голосовых сообщениях для подстановки значения.