Разные оповещения в зависимости от флага в БД пользователя?
Разные оповещения в зависимости от флага в БД пользователя?
Добрый день!
Работает автообзвон с БД пользователя, оповещает его 2 раза о необходимых действиях.
Появилась новая задача - добавить в БД новый перечень номеров, но для них сделать другое оповещение. Эти номера могут быть внесены в БД с каким либо новым флагом, предварительно добавив в таблицу БД новое поле для этого флага.
Вопрос - как поменять алгоритм, чтобы он реагировал на этот флаг? И как изменить запрос к БД пользователя.
Экспортированный алгоритм в аттаче. Запрос к БД ниже.
----------------------------------------------------------------------
;Общие настройки
[General]
SrcName="SQLex"
Version=1
DateTimeFormat="dd.mm.yyyy h:mm:ss"
;Необработанные номера
[Unprocessed]
Priority=0
Query="select ID, Phone from Obzvon where Processing='False' and Status=0 and CONVERT(Varchar(10),NextCallDate,104) = CONVERT(Varchar(10),GetDate(),104) And DialWasTimes<2 order by ID"
ID="ID"
Number="Phone"
;Номера со статусом "Занято"
[Busy]
Priority=1
Query="select ID, Phone, DialLastEnd from Obzvon where Status=2 and Processing='False' and Count<~RepeatBusy~ order by DialLastEnd"
ID="ID"
Number="Phone"
EndTime="DialLastEnd"
;Номера со статусом "Не отвечает"
[NotAnswered]
Priority=2
Query="select ID, Phone, DialLastEnd from Obzvon where Status=3 and Processing='False' and Count<~RepeatNoAnswer~ order by DialLastEnd, ID"
ID="ID"
Number="Phone"
EndTime="DialLastEnd"
;Номера со статусом "Другое или неверный код"
[Other]
Priority=3
Query="select ID, Phone, DialLastEnd from Obzvon where Status=4 and Processing='False' and Count<~RepeatOther~ order by DialLastEnd, ID"
ID="ID"
Number="Phone"
EndTime="DialLastEnd"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Перед обзвоном очередного номера
[BeforeDialNumber]
Query="update Obzvon set Processing='True', Count=Count + 1 where ID=~NumID~"
;После обзвона очередного номера
;Статус: 0 - не обработан, 1 - успех, 2 - занято, 3 - не отвечает, 4 - другое или неверный код"
[AfterDialNumber]
Query="if ~Status~=1 update Obzvon set Processing='False', Status=0, DialWasTimes=DialWasTimes+1, DialLastEnd=GetDate(), NextCallDate=DATEADD(DAY,15,CONVERT(Varchar(10),GetDate(),104)) where ID=~NumID~ else update Obzvon set Processing='False', Status=~Status~, DialLastEnd=GetDate() where ID=~NumID~; "
;Если обзвон был прерван
[DialBreak]
Query="update Obzvon set Processing='False', DialLastEnd=GetDate(), Status=4 where ID=~NumID~"
;Сброс номеров в начальное состояние при запуске программы автообзвона
[ResetNumbers]
Query="update Obzvon set Processing='False', Count=0"
Работает автообзвон с БД пользователя, оповещает его 2 раза о необходимых действиях.
Появилась новая задача - добавить в БД новый перечень номеров, но для них сделать другое оповещение. Эти номера могут быть внесены в БД с каким либо новым флагом, предварительно добавив в таблицу БД новое поле для этого флага.
Вопрос - как поменять алгоритм, чтобы он реагировал на этот флаг? И как изменить запрос к БД пользователя.
Экспортированный алгоритм в аттаче. Запрос к БД ниже.
----------------------------------------------------------------------
;Общие настройки
[General]
SrcName="SQLex"
Version=1
DateTimeFormat="dd.mm.yyyy h:mm:ss"
;Необработанные номера
[Unprocessed]
Priority=0
Query="select ID, Phone from Obzvon where Processing='False' and Status=0 and CONVERT(Varchar(10),NextCallDate,104) = CONVERT(Varchar(10),GetDate(),104) And DialWasTimes<2 order by ID"
ID="ID"
Number="Phone"
;Номера со статусом "Занято"
[Busy]
Priority=1
Query="select ID, Phone, DialLastEnd from Obzvon where Status=2 and Processing='False' and Count<~RepeatBusy~ order by DialLastEnd"
ID="ID"
Number="Phone"
EndTime="DialLastEnd"
;Номера со статусом "Не отвечает"
[NotAnswered]
Priority=2
Query="select ID, Phone, DialLastEnd from Obzvon where Status=3 and Processing='False' and Count<~RepeatNoAnswer~ order by DialLastEnd, ID"
ID="ID"
Number="Phone"
EndTime="DialLastEnd"
;Номера со статусом "Другое или неверный код"
[Other]
Priority=3
Query="select ID, Phone, DialLastEnd from Obzvon where Status=4 and Processing='False' and Count<~RepeatOther~ order by DialLastEnd, ID"
ID="ID"
Number="Phone"
EndTime="DialLastEnd"
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;Перед обзвоном очередного номера
[BeforeDialNumber]
Query="update Obzvon set Processing='True', Count=Count + 1 where ID=~NumID~"
;После обзвона очередного номера
;Статус: 0 - не обработан, 1 - успех, 2 - занято, 3 - не отвечает, 4 - другое или неверный код"
[AfterDialNumber]
Query="if ~Status~=1 update Obzvon set Processing='False', Status=0, DialWasTimes=DialWasTimes+1, DialLastEnd=GetDate(), NextCallDate=DATEADD(DAY,15,CONVERT(Varchar(10),GetDate(),104)) where ID=~NumID~ else update Obzvon set Processing='False', Status=~Status~, DialLastEnd=GetDate() where ID=~NumID~; "
;Если обзвон был прерван
[DialBreak]
Query="update Obzvon set Processing='False', DialLastEnd=GetDate(), Status=4 where ID=~NumID~"
;Сброс номеров в начальное состояние при запуске программы автообзвона
[ResetNumbers]
Query="update Obzvon set Processing='False', Count=0"
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Разные оповещения в зависимости от флага в БД пользовате
Ждите ПН, когда будет рабочее время.
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Разные оповещения в зависимости от флага в БД пользовате
Т.е. флаг нужен для того, чтобы указать на другой способ оповещения?
Re: Разные оповещения в зависимости от флага в БД пользовате
Это была первая мысль, чтобы разделить типы набираемых номеров. Может есть и более простой способ...sannx писал(а):Т.е. флаг нужен для того, чтобы указать на другой способ оповещения?
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Разные оповещения в зависимости от флага в БД пользовате
Вам виднее, как лучше отличать способ оповещения. Можно и с помощью флага. Добавьте столбец флага в таблицу Obzvon и добавьте секцию "[UserValues]". Далее в Конструкторе добавьте команду "Получить данные об абоненте" - эта команда закинет в переменную ваш флаг. Далее в алгоритме разрулите способ оповещения в зависимости от флага.
Re: Разные оповещения в зависимости от флага в БД пользовате
А что требуется прописать в этой секции?sannx писал(а): и добавьте секцию "[UserValues]".
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Разные оповещения в зависимости от флага в БД пользовате
Прочитайте Справку в разделе "Стандартный и альтернативный механизм автообзвона". Там все расписано.
Re: Разные оповещения в зависимости от флага в БД пользовате
Добрый день.
Почитал мануал, различные примеры. Вот что получилось:
1. добавил поле в таблицу СКЛ с типом int
2. добавил секцию в выборку из БД
3. модифицировал алгоритм (скрины и эксп.файл в аттаче).
В итоге мне играют один и тот же WAV, первый по порядку, вне зависимости от значения переменной Var4.
Что делаю не так??
Почитал мануал, различные примеры. Вот что получилось:
1. добавил поле в таблицу СКЛ с типом int
2. добавил секцию в выборку из БД
Код: Выделить всё
;Данные об абоненте
;Типы данных: 1 - номер телефона, 2 - число, 3 - дата/время, 4 - сумма руб.
[UserValues]
Query="select 2, NumType from Obzvon where ID=~NumID~"
Form=AsRow
В итоге мне играют один и тот же WAV, первый по порядку, вне зависимости от значения переменной Var4.
Что делаю не так??
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Разные оповещения в зависимости от флага в БД пользовате
А что такое NumType?
Re: Разные оповещения в зависимости от флага в БД пользовате
NumType - это и есть новое поле в таблице Obzvon, которое определяет тип номера 0 или 1
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Разные оповещения в зависимости от флага в БД пользовате
Проверьте Журнал событий - логи у команды "Получить данные об абоненте". Есть там что криминальное?
Re: Разные оповещения в зависимости от флага в БД пользовате
не понятно, обрабатывается ли моя переменная..
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Разные оповещения в зависимости от флага в БД пользовате
Не вижу этой команды. А вы не перезаписали алгоритм Конструктора при сохранении?
Re: Разные оповещения в зависимости от флага в БД пользовате
я снимал соотв. галку
А как должна выглядеть эта команда в Логах?
А как должна выглядеть эта команда в Логах?
- sannx
- Администратор
- Сообщения: 2306
- Зарегистрирован: 02 ноя 2011, 14:00
- Skype: sann-x
- Контактная информация:
Re: Разные оповещения в зависимости от флага в БД пользовате
Сбросьте фильтр в Журнале событий, сохраните его в файл и пришлите мне. Моя почта внизу каждого сообщения.
Re: Разные оповещения в зависимости от флага в БД пользовате
Отправил на почту.