Приём показаний приборов учёта. Инструкция: различия между версиями
McBurns (обсуждение | вклад) |
McBurns (обсуждение | вклад) |
||
Строка 9: | Строка 9: | ||
#По каждому прибору учёта из списка [[#Приём показаний по каждому прибору учёта из списка|принимаются показания]]. | #По каждому прибору учёта из списка [[#Приём показаний по каждому прибору учёта из списка|принимаются показания]]. | ||
#Принятые показания проверяются и, если [[#Проверка полученных показаний|проверка прошла успешно]], [[#Запись принятых показаний в базу данных|записываются в базу данных]]. | #Принятые показания проверяются и, если [[#Проверка полученных показаний|проверка прошла успешно]], [[#Запись принятых показаний в базу данных|записываются в базу данных]]. | ||
#Произносится [[#Прощальное сообщение|прощальное сообщение]]. | |||
=Пошаговая настройка= | =Пошаговая настройка= | ||
Строка 20: | Строка 21: | ||
==Ожидание выбора способа передачи показаний== | ==Ожидание выбора способа передачи показаний== | ||
В область действия сценария добавляется переменная '''[IsVoice]''', она имеет значение '''true''', если выбрана передача показаний голосом | В область действия сценария добавляется переменная '''[IsVoice]''', она имеет значение '''true''', если выбрана передача показаний голосом, или '''false''', если выбрано получение показаний путём нажатия клавиш телефона. В дальнейшем эту и любые другие переменные, добавленные в область действия сценария можно использовать как в запросах, так и в голосовых сообщениях. Например, для выбора сообщения, которое будет произноситься абоненту. | ||
==Запрос на поиск лицевого счёта по номеру телефона== | ==Запрос на поиск лицевого счёта по номеру телефона== | ||
Если у ваших абонентов есть жёсткая привязка лицевого счёта к номеру телефона, используйте запрос на странице «Поиск лицевого счета по номеру телефона». Если такой привязки нет, запрос можно оставить пустым, и поиск по номеру телефона производиться не будет. | Если у ваших абонентов есть жёсткая привязка лицевого счёта к номеру телефона, используйте запрос на странице '''«Поиск лицевого счета по номеру телефона»'''. Если такой привязки нет, запрос можно оставить пустым, и поиск по номеру телефона производиться не будет. | ||
В запросе необходимо в обязательном порядке получить поле с номером лицевого счёта, которое выбирается на странице настроек ниже. Для подстановки в запрос номера телефона, который определился у абонента, используйте переменную '''[InPhone]'''. | В запросе необходимо в обязательном порядке получить поле с номером лицевого счёта, которое выбирается на странице настроек ниже. Для подстановки в запрос номера телефона, который определился у абонента, используйте переменную '''[InPhone]'''. | ||
Строка 37: | Строка 38: | ||
На этой же странице можно ввести для проверки номер телефона, который будет подставлен вместо переменной '''[InPhone]''' после нажатия кнопки '''«Проверить»'''. Результат выполнения запроса будет выведен в виде таблицы в поле «Результаты запроса». | На этой же странице можно ввести для проверки номер телефона, который будет подставлен вместо переменной '''[InPhone]''' после нажатия кнопки '''«Проверить»'''. Результат выполнения запроса будет выведен в виде таблицы в поле «Результаты запроса». | ||
Во время работы сценария выполняется поиск по номеру телефона. В случае, если запись с лицевым счётом найдена, в область действия сценария добавляется переменная '''[Account]''', содержащая номер лицевого счёта. | |||
При получении только одной записи в результате выполнения запроса при работе сценария лицевой счёт считается определённым и дополнительно не спрашивается у абонента. | При получении только одной записи в результате выполнения запроса при работе сценария лицевой счёт считается определённым и дополнительно не спрашивается у абонента. | ||
Строка 52: | Строка 55: | ||
После произнесения сообщения сценарий в течение 18 секунд ожидает произнесения номера лицевого счёта или нажатия клавиш на телефоне. | После произнесения сообщения сценарий в течение 18 секунд ожидает произнесения номера лицевого счёта или нажатия клавиш на телефоне. | ||
Если лицевой счёт не получен или данные по нему не найдены в базе данных, сценарий ещё два раза запрашивает у абонента лицевой счёт. | В область действия сценария добавляется переменная '''[Account]''', содержащая полученное значение лицевого счёта, которую можно в дальнейшем использовать в SQL-запросах или в поле «Выражение» голосовых сообщений | ||
Если лицевой счёт не получен или данные по нему [[#Поиск лицевого счёта в базе данных|не найдены в базе данных]], произносится сообщение '''«Не получены данные лицевого счёта»''', сценарий ещё два раза запрашивает у абонента лицевой счёт. | |||
Если лицевой счёт не получен или [[#Поиск лицевого счёта в базе данных|не найден в базе данных]] после трёх попыток, сценарий переходит к [[#Прощальное сообщение|прощальному сообщению]]. | |||
При получении данных лицевого счёта сценарий переходит к [[#Получение списка приборов учёта по лицевому счёту|получению списка приборов учёта]]. | |||
==Поиск лицевого счёта в базе данных== | ==Поиск лицевого счёта в базе данных== | ||
На странице настроек '''«Поиск по номеру лицевого счёта»''' указывается SQL-запрос на получение данных по номеру лицевого счёта. Для подстановки в запрос значение номера лицевого счёта, указанного абонентом или определившегося по номеру телефона, используется переменная '''[Account]'''. | |||
Например, если задать запрос: | |||
select * from `Account` where `Account`='[Account]' | |||
при указанном лицевом счёте 123456789 будет выполнен запрос: | |||
select * from `Account` where `Account`='123456789' | |||
Если получена запись с номером лицевого счёта, в сценарий возвращается эта запись, иначе возвращается значение '''null'''. | |||
==Получение списка приборов учёта по лицевому счёту== | ==Получение списка приборов учёта по лицевому счёту== | ||
==Приём показаний по каждому прибору учёта из списка== | ==Приём показаний по каждому прибору учёта из списка== | ||
==Проверка полученных показаний== | ==Проверка полученных показаний== | ||
==Запись принятых показаний в базу данных== | ==Запись принятых показаний в базу данных== | ||
==Прощальное сообщение== |
Версия 05:08, 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.