Хранение статистики автообзвона в MsSql

Вопросы, связанные с доступом к данным

Хранение статистики автообзвона в MsSql

Сообщение Denis » 19 янв 2015, 13:34

Добрый день.

Я пытаюсь настроить автообзвон в CallOffice. Хочется собирать статистику по звонкам, то есть как минимум завести две таблицы, вроде примера на Access, но для более серьезной СУБД, например MsSql.
1. Есть ли стандартные скрипты и структуры базы для двух таблиц или переделывать запросы самому?
2. Мне стандартный скрипт ругается на колонку CallTime. Если делаю ее DateTime, то класс Database ругается Неверно задан тип %s для поля [%s] в базе данных. Тип поля может быть цифровым или текстовым.
Если сделать целочисленным, то уже MsSql говорит, что не может преобразовать getDate()
Denis
 
Сообщений: 22
Зарегистрирован: 16 янв 2015, 14:22

Re: Хранение статистики автообзвона в MsSql

Сообщение McBurns » 20 янв 2015, 03:36

Здравствуйте.

Проверка формата поля (только цифровое или текстовое) делается для поля учёта результатов обзвона. 0 или 1 для цифрового формата. Описание ошибки или «OK» для текстового. Вы уверены, что не перепутали поля для записи результатов и времени обзвона?

Для работы с двумя базами данных стандартных скриптов нет. Но с двумя и более таблицами вы можете работать. Для этого в нашем программном продукте есть возможность использовать свои SQL-запросы для выборки и сохранения данных.

Подробное описание работы стандартных сценариев можно посмотреть в нашей базе знаний.
Есть множество вопросов, на которые уже есть ответы. Загляните в нашу базу знаний.
Группа поддержки.

Skype: Wentor.ru
ICQ: 627643406
Аватар пользователя
McBurns
 
Сообщений: 88
Зарегистрирован: 21 ноя 2012, 10:09

Re: Хранение статистики автообзвона в MsSql

Сообщение Denis » 20 янв 2015, 07:03

Переписал запрос заново. Теперь ругается на другое
Если написать значение PassField в кавычках, то ошибка преобразования varchar
Код: выделить все
update CallMachine.dbo.Ring   set "CallTime" = getdate(), "Status" = 'Ошибка при воспроизведении звука. : Указанное устройство уже используется. Подождите, пока оно освободится, и повторите попытку.', "Attempts" = '[PassField]' where "Phone" = 'xxxxxxxxxxx';<lf>insert into CallMachine.dbo.Log  (Phone, Status, CallTime) VALUES ('[ColumnPhone]', '[ColumnResult]', getDate())

если без кавычек, то недопустимое имя столбца PassField
Код: выделить все
update CallMachine.dbo.Ring   set "CallTime" = getdate(), "Status" = 'Ошибка при воспроизведении звука. : Указанное устройство уже используется. Подождите, пока оно освободится, и повторите попытку.', "Attempts" = [PassField] where "Phone" = 'xxxxxxxxxxx';<lf>insert into CallMachine.dbo.Log  (Phone, Status, CallTime) VALUES ('[ColumnPhone]', '[ColumnResult]', getDate())


Насчет звукового устройства можно не обращать внимания, звуковая карта иногда не отвечает, с модемом все в порядке.

P.S. Смог найти первоначальную ошибку, выбрал поставляемую базу Access sample.mdb, настройки по умолчанию, запускаю дозвон и получаю
Код: выделить все
Неверно задан тип date для поля [CallTime] в базе данных. Тип поля может быть цифровым или текстовым. Учет результатов предыдущего дозвона не будет осуществлен.
Последний раз редактировалось Denis 20 янв 2015, 10:05, всего редактировалось 1 раз.
Denis
 
Сообщений: 22
Зарегистрирован: 16 янв 2015, 14:22

Re: Хранение статистики автообзвона в MsSql

Сообщение McBurns » 20 янв 2015, 08:02

Вы два запроса сразу пишете? Не совсем понятно по приложенным данным.
Вы можете в скайп Wentor.ru написать?
Есть множество вопросов, на которые уже есть ответы. Загляните в нашу базу знаний.
Группа поддержки.

Skype: Wentor.ru
ICQ: 627643406
Аватар пользователя
McBurns
 
Сообщений: 88
Зарегистрирован: 21 ноя 2012, 10:09

Re: Хранение статистики автообзвона в MsSql

Сообщение Denis » 20 янв 2015, 10:04

Да, я сразу два запроса сохраняю - один в Ring, чтобы программа нормально работала, и дублирующий в Log, для хранения журнала звонков.
Но на поле Attempts выдается ошибка, оно типа smallint, а CallOffice в него что-то странное сохраняет.

По скайпу не могу написать, только по ICQ, если есть.
Denis
 
Сообщений: 22
Зарегистрирован: 16 янв 2015, 14:22

Re: Хранение статистики автообзвона в MsSql

Сообщение McBurns » 20 янв 2015, 10:55

Возможность использовать два запроса у нас сейчас присутствует только в тестовой версии. Скачать её можно на нашем сайте: http://www.calloffice.ru/Download/CallOffice_new.exe

Запросы должны разделяться строкой, содержащей только два символа слэша: //.

Скорее всего, ошибка происходит именно из-за этого.
Есть множество вопросов, на которые уже есть ответы. Загляните в нашу базу знаний.
Группа поддержки.

Skype: Wentor.ru
ICQ: 627643406
Аватар пользователя
McBurns
 
Сообщений: 88
Зарегистрирован: 21 ноя 2012, 10:09

Re: Хранение статистики автообзвона в MsSql

Сообщение Denis » 20 янв 2015, 12:30

Нашел я ошибку у вас на форуме же
Согласно теме http://forum.calloffice.ru/viewtopic.php?f=3&t=151&p=272 нет в SQL запросе поля PASSFIELD.

Я проверил - такой запрос работает!
Код: выделить все
update CallMachine.dbo.Ring   
set  "CallTime" = getdate(), "Status" = '[ColumnResult]', "Attempts" = Attempts+1 
where "Phone" = '[ColumnPhone]';
//
insert into CallMachine.dbo.Log  ("Phone", "Status", "CallTime") VALUES ('[ColumnPhone]', '[ColumnResult]', getDate())
Denis
 
Сообщений: 22
Зарегистрирован: 16 янв 2015, 14:22

Re: Хранение статистики автообзвона в MsSql

Сообщение Denis » 20 янв 2015, 14:31

Только теперь не понятно, как число попыток Attempts использовать в общей схеме работы.
Если выполнить стандартный запрос на получение клиентов
Код: выделить все
select * from CallMachine.dbo.Ring where `Status`<> 'OK'    or `Status` is null

то Attempts никак не учитывается.
Его надо в условие запроса добавлять или скрипт сам поймет из расширенных настроек, что надо надо клиенту 5 раз, допустим, попробовать позвонить?
Denis
 
Сообщений: 22
Зарегистрирован: 16 янв 2015, 14:22

Re: Хранение статистики автообзвона в MsSql

Сообщение McBurns » 21 янв 2015, 03:40

Вы же при создании запроса знаете, сколько попыток должно быть сделано для одного абонента, поэтому можно сразу написать это в запрос:

Код: выделить все
select *
  from CallMachine.dbo.Ring
 where Status   <> 'OK'
   and Attempts <  5
Есть множество вопросов, на которые уже есть ответы. Загляните в нашу базу знаний.
Группа поддержки.

Skype: Wentor.ru
ICQ: 627643406
Аватар пользователя
McBurns
 
Сообщений: 88
Зарегистрирован: 21 ноя 2012, 10:09


Вернуться в Вопросы доступа к данным

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

cron