ООО ООО "СКБ Проминформ"

 
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Конструктор отчетов
Goto page 1, 2  Next
 
Post new topic   Reply to topic    ООО "СКБ Проминформ" Forum Index -> Система Техподдержки ADSL
View previous topic :: View next topic  
Author Message
Inna



Joined: 09 Jul 2008
Posts: 46
Location: PromInform

PostPosted: Tue Feb 10, 2009 10:24 am    Post subject: Конструктор отчетов Reply with quote

В отчете "Выработка операторов по нарядам", который поставляется в составе инсталляционного пакета, закралась ошибка, в результате чего данные отображаются нарастающим итогом.
Чтобы ее исправить, откройте АРМ администратора ADSL и выполните следующее:
1. Откройте пункт меню "Отчеты" -> "Построитель отчетов".
2. В таблице запросов найдите запрос с именем "WORKING_OUT".
3. В тексте этого запроса, в конструкции WHERE пропущены скобки. Нужно их расставить так, чтобы получился следующий запрос:

SELECT user_id "Табельный", COUNT (1) "Кол-во",
DECODE (TYPE,
'ADS1', 'Вновь созданных',
'ADS2', 'Исполненных',
'ADS3', 'Искаженных',
'ADS4', 'Отредактированных',
'ADS5', 'Просроченных',
''
) "Операции с нарядами"
FROM cc_working_out wo
WHERE (TYPE = 'ADS1'
OR TYPE = 'ADS2'
OR TYPE = 'ADS3'
OR TYPE = 'ADS4'
OR TYPE = 'ADS5')
AND TIMESTAMP BETWEEN :date_beg AND :date_end
GROUP BY user_id, TYPE

В процессе редактирования может появиться сообщение, что запрос в настоящее время используется в готовом отчете и действительно ли вы хотите его изменить. Нажмите "Да".
4. После того, как запрос отредактирован и сохранен, нужно установить галочку в таблице отчетов, напротив отчета "Выработка операторов по нарядам" в столбце "Готов". Закройте построитель отчетов.
5. Откройте пункт меню "Отчеты" -> "Завершенные отчеты". Введите период дат и сформируйте отчет "Выработка операторов по нарядам". Вы получите данные по количеству созданных, отредактированных, исполненных и искаженных нарядов по каждому оператору за указанный вами период.
Back to top
View user's profile Send private message
IKar



Joined: 04 Sep 2008
Posts: 11
Location: Уралсвязьинформ, Златоуст

PostPosted: Mon Feb 16, 2009 1:10 pm    Post subject: Reply with quote

Пытаюсь модернизировать этот отчет. Цифры не очень сходятся между shura.history и cc_working_out. Наверно, что-то не учитываю в запросе?
Code:

SELECT   kto.fio||' ('||wo.user_id||')' "Табельный", COUNT (1) "Кол-во",
         DECODE (wo.TYPE,
                 'INC1','ВВ на РМ  Принят',
                 'INC3','ВВ на РМ Потерян',
                 'INC4','ВВ на РМ Переключ',
                 'ADS1', 'Н _создано',
                 'ADS2', 'Н исполнено',
                 'ADS3', 'Н искажено',
                 'ADS4', 'Н редактир',
                 'ADS5', 'Н просрочено',
                 ''
                ) "Операции с нарядами"
    FROM cc_working_out wo, workers kto
   WHERE (wo.TYPE = 'ADS1'
      OR wo.TYPE = 'ADS2'
      OR wo.TYPE = 'ADS3'
      OR wo.TYPE = 'ADS4'
      OR     wo.TYPE = 'ADS5'
      OR wo.TYPE='INC1'
       OR wo.TYPE='INC3'
       OR wo.TYPE='INC4'
)
         AND wo.TIMESTAMP BETWEEN :date_beg  AND :date_end
and wo.user_id=kto.user_id
GROUP BY kto.fio,wo.user_id, wo.TYPE
union
 select 'IVR(АудиоСервер)', count(*) , '_Запись'
 from support.audio_message a
 where a.call_date
 BETWEEN :date_beg  AND :date_end
union
select '_Коммутатор',count(*),'_ВВ' from (
select call_id,count(*) from shura.history
where timestamp
 BETWEEN :date_beg  AND :date_end
group by call_id
)
Back to top
View user's profile Send private message
akr



Joined: 05 Jun 2008
Posts: 75
Location: PromInform

PostPosted: Mon Feb 16, 2009 2:45 pm    Post subject: Reply with quote

IKar wrote:
Пытаюсь модернизировать этот отчет. Цифры не очень сходятся между shura.history и cc_working_out.


Какие конкретно цифры как вы ожидаете должны сойтись?
_________________
Кирюшкин Алексей
Back to top
View user's profile Send private message
IKar



Joined: 04 Sep 2008
Posts: 11
Location: Уралсвязьинформ, Златоуст

PostPosted: Mon Feb 16, 2009 3:10 pm    Post subject: Reply with quote

akr wrote:

Какие конкретно цифры как вы ожидаете должны сойтись?

[Общее кол-во входящих вызовов] = [Кол-во принятых] + [Кол-во потерянных] + [Кол-во отказов] + [Кол-во ушедших на запись]
Как-то так. Embarassed
Back to top
View user's profile Send private message
akr



Joined: 05 Jun 2008
Posts: 75
Location: PromInform

PostPosted: Mon Feb 16, 2009 3:18 pm    Post subject: Reply with quote

IKar wrote:

[Общее кол-во входящих вызовов] = [Кол-во принятых] + [Кол-во потерянных] + [Кол-во отказов] + [Кол-во ушедших на запись]


неполучится, хотя бы из-за того, что в АРМ оператора есть функциональность отказа от входящего и передачи входящего на выбранное (другое) РМ, так что один и тот же входящий может быть учтен как принятый и отвеченый неограниченное количество раз
_________________
Кирюшкин Алексей
Back to top
View user's profile Send private message
IKar



Joined: 04 Sep 2008
Posts: 11
Location: Уралсвязьинформ, Златоуст

PostPosted: Tue Feb 17, 2009 8:25 am    Post subject: Reply with quote

Тогда бы в history было бы меньше, чем в cc_working_out + audio_message. А получается наоборот:
Code:

SQL> SELECT   '3_cc_working_out_INC*', COUNT (1)
  2      FROM cc_working_out wo
  3     WHERE wo.TYPE like 'INC%'
  4           AND wo.TIMESTAMP BETWEEN '09/02/09'  AND '16/02/09'
  5  union
  6   select '2_record', count(*)
  7   from support.audio_message a
  8   where a.call_date
  9   BETWEEN '09/02/09'  AND '16/02/09'
 10  union
 11  select '1_history',count(*) from (
 12  select call_id,count(*) from shura.history
 13  where timestamp
 14   BETWEEN '09/02/09' AND '16/02/09'
 15  group by call_id
 16  )
 17  /

     
--------------------- ----------
1_history                   1092
2_record                      41
3_cc_working_out_INC*        909

Наверняка выпадают те, кого отправило на запись, но они положили трубу. Их посчитать можно?
Back to top
View user's profile Send private message
Inna



Joined: 09 Jul 2008
Posts: 46
Location: PromInform

PostPosted: Tue Feb 17, 2009 2:59 pm    Post subject: Reply with quote

Quote:
Тогда бы в history было бы меньше, чем в cc_working_out + audio_message. А получается наоборот


Первая программа, которая принимает входящий и обрабатывает его - это программа "Диспетчер" коммутационного оборудования.
Диспетчер, пытается распределить входящий вызов, а программа "Сервер сообщений" внимательно за ним наблюдает и записывает всю информацию
о действиях Диспетчера в базу данных. Для записи используется таблица MESS_SRV схемы SHURA.

Структура таблицы:

MESS_CODE Код сообщения
MESS_TYPE Тип сообщения
SOURCE_ID Номер системы источника/Номер системы АРМТ
DEST_ID Номер системы приемника/Тип рабочего места
ARM_ID Номер РМ
USER_ID Табельный номер
DATE_TIME Дата/Время события
DURATION Длительность события
IN_GROUP Входящая группа
CHAN_PROP Свойства канала/Адрес гарнитуры
SYS_GRN Система гарнитуры
CHAN_NAME Идентификатор канала/Имя сеанса
DATE_GROUP Поле для последующей обработки
CHAIN_ID Идентификатор цепочки входящего вызова

Поле MESS_TYPE и может принимать значения:

1 Поступил входящий вызов
2 Немедленное распределение вх-го вызова на РМ
3 Распределение из очереди на РМ
4 Распределение вх-го через перемычку
5 Помещение вызова в очередь
6 Ответ оператора
7 Отказ от вызова со стороны РМ по инициативе оператора
8 Отказ от вызова со стороны РМ по инициативе АРМ
9 Переход канала в неразговорное состояние без ответа(сброс входящего вызова)
10 Освобождение канала оператором после ответа
11 Освобождение канала АРМ-ом до ответа
12 Нет зарегистрированных РМ для принятия вызова
13 Регистрация РМ
14 Перерегистрация РМ
15 Разрегистрация РМ

После того, как входящий был распределен на РМ, программа IVR(интерактивный автоинформатор) ведет свою собственную статистику по входящим.
Эта статистика обеспечивается настройкой в программе настройки модулей ЦОВ(ярлычок найдете на рабочем столе).
На вкладке "Операции" перечислены операции с входящим, которые фиксируются в БД. Они начинаются с префикса "INC".

INC1 Принят входящий
INC2 Потерян входящий
INC4 Отказ от входящего

Программа IVR пишет свою статистику в таблицу WORKING_OUT схемы CALL. В этой таблице: ARM_ID - Номер РМ, USER_ID -Табельный номер,
timestamp - дата и время события, type - префикс операции. Остальные поля не существенны.
Таким образом, общее количество вызовов, вообще имевших место, лучше всего посчитать по таблице SHURA.MESS_SRV по типу сообщения 1.

SELECT COUNT(1) TotalCount
FROM SHURA.MESS_SRV
WHERE MESS_TYPE=1

Общее количество потерянных вызовов, не дошедших до IVR, лучше всего посчитать по таблице SHURA.MESS_SRV по типу сообщения 9.

SELECT COUNT(1) LostCount
FROM SHURA.MESS_SRV
WHERE MESS_TYPE=9

Теперь получим количество распределенных на IVR: TotalCount-LostCount=IncomCount.
Теперь будем анализировать таблицу CALL.WORKING_OUT уже для каждого рабочего места и табельного,
с учетом того, что вызовы могли перебрасываться с места на место.
Back to top
View user's profile Send private message
Inna



Joined: 09 Jul 2008
Posts: 46
Location: PromInform

PostPosted: Tue Mar 03, 2009 11:46 am    Post subject: Reply with quote

Inna wrote:

Таким образом, общее количество вызовов, вообще имевших место, лучше всего посчитать по таблице SHURA.MESS_SRV по типу сообщения 1.

SELECT COUNT(1) TotalCount
FROM SHURA.MESS_SRV
WHERE MESS_TYPE=1

Общее количество потерянных вызовов, не дошедших до IVR, лучше всего посчитать по таблице SHURA.MESS_SRV по типу сообщения 9.

SELECT COUNT(1) LostCount
FROM SHURA.MESS_SRV
WHERE MESS_TYPE=9


Как выяснилось при более детальном анализе вместе с разработчиком сервера сообщений, все не так просто. Данные нужно рассматривать в зависимости от номера рабочего места. Более подробную информацию выложу позднее.
Back to top
View user's profile Send private message
ura



Joined: 17 Mar 2009
Posts: 1

PostPosted: Tue Mar 17, 2009 5:40 pm    Post subject: Reply with quote

Не подскажите как правильно подсчитать количество принятых звонков, причем надо посчитать с разбивкой по кодам городов обратившихся в техподдержку.
Back to top
View user's profile Send private message
Inna



Joined: 09 Jul 2008
Posts: 46
Location: PromInform

PostPosted: Wed Mar 18, 2009 9:44 am    Post subject: Reply with quote

ura wrote:
Не подскажите как правильно подсчитать количество принятых звонков, причем надо посчитать с разбивкой по кодам городов обратившихся в техподержку.

С разбивкой по городам, к сожалению, не получится. Потому что определить город есть только один способ - по АОНу, но абонент может позвонить в службу техподдержки с сотового телефона.
Количество ответов операторов на входящий вызов за конкретный период можно посчитать следующим запросом:

SELECT COUNT (1) cnt
FROM shura.mess_srv srv
WHERE srv.arm_id NOT IN (65535,[номер рм IVR])
AND mess_type = 6
AND date_time BETWEEN :date_beg AND :date_end


Здесь arm_id это номер рабочего места. Mess_type - тип сообщения. 6 тип сообщения - это "Ответ оператора". Однако первоначально, до распределения входящего вызова на РМ, на него "отвечает" программа Диспетчер и затем еще программа IVR(интерактивный автоинформатор), поэтому необходимо исключить эти записи из общего количества ответов. Номер рабочего места программы Диспетчер - 65535 (-1 в шестнадцатиричке), а вот номер рабочего места программы IVR у каждого ТУЭС свой. Чтобы его определить, выполните запрос:

SELECT ARM_ID, DECODE(DEST_ID,
-1,'Тип рабочей станции неизвестен',
0,'Машина диспетчера',
1,'Сеанс АПП',
2,'АРМ техника',
3,'АРМ междугородного телефониста',
4,'АРМ начальника контрольно-хронометрической службы',
5,'Удаленная консоль',
6,'Сеанс связи с соседним стативом',
7,'Сеанс монитора оперативной статистики по входящим',
8,'Внешняя DLL',
9,'Сеанс управления гарнитурой с использованием внешней DLL',
10,'Сеанс аварийной версии телефонистки',
11,'Сеанс CALL центра',
12,'Голосовое меню',
13,'Монитор конференц моста',
14,'Администратор КомЗала','Неопределено'
) "Тип рабочего места"
FROM SHURA.MESS_SRV
WHERE MESS_CODE=513
AND date_time BETWEEN :date_beg AND :date_end
GROUP BY ARM_ID,DEST_ID


Номер рабочего места с типом 'Голосовое меню' и будет номером рабочего места программы IVR. Его нужно указать в запросе.
Если у вас установлена программа АРМ междугородного телефониста, то рабочие места телефонисток тоже нужно исключить, то есть указать их в списке NOT IN через запятую.

Я сейчас как раз занимаюсь построением отчетов по дополнительному ТЗ по техподдержке ADSL, там есть этот запрос. Поэтому прочтите ТЗ и, если вас устраивают те формы отчетов, которые там указаны, подождите немного, они скоро будут готовы.
Back to top
View user's profile Send private message
IKar



Joined: 04 Sep 2008
Posts: 11
Location: Уралсвязьинформ, Златоуст

PostPosted: Wed Mar 18, 2009 7:05 pm    Post subject: Reply with quote

Inna wrote:

С разбивкой по городам, к сожалению, не получится. Потому что определить город есть только один способ - по АОНу, но абонент может позвонить в службу техподдержки с сотового телефона.

Если по входящему вызову создан наряд с тех.данными порта - можно определить принадлежность по площадке. В противном случае - по АОНу. Если по АОНу не классифицируется - сваливать либо в "неопределенные", либо на самый "тяжелый" цех ТУЭС.
З.Ы. Чтобы схема работала, пришлось создать пару вьюшек со специфичными decode.
З.З.Ы. Хотя и в эту схему единичные ВВ, бывает, не укладываются.
З.З.З.Ы. Больше волнует другой вопрос. Как считать последний и самый важный столбец отчета о качестве работы ТП - про "повторные инциденты"? Rolling Eyes
Back to top
View user's profile Send private message
Inna



Joined: 09 Jul 2008
Posts: 46
Location: PromInform

PostPosted: Thu Mar 19, 2009 9:14 am    Post subject: Reply with quote

IKar wrote:

Если по входящему вызову создан наряд с тех.данными порта - можно определить принадлежность по площадке. В противном случае - по АОНу. Если по АОНу не классифицируется - сваливать либо в "неопределенные", либо на самый "тяжелый" цех ТУЭС.
З.Ы. Чтобы схема работала, пришлось создать пару вьюшек со специфичными decode.
З.З.Ы. Хотя и в эту схему единичные ВВ, бывает, не укладываются.

Есть еще одна особенность - если входящий вызов перебрасывается с места на место, то в INRING_ADSL он каждый раз фиксируется с новым CALL_ID. Таким образом, один входящий будет посчитан несколько раз.
Еще, если у вас не укладываются единичные ВВ, то получается, что у вас с сотовых звонят единицы?
Back to top
View user's profile Send private message
Inna



Joined: 09 Jul 2008
Posts: 46
Location: PromInform

PostPosted: Thu Mar 19, 2009 9:37 am    Post subject: Reply with quote

IKar wrote:

З.З.З.Ы. Больше волнует другой вопрос. Как считать последний и самый важный столбец отчета о качестве работы ТП - про "повторные инциденты"? Rolling Eyes


При обсуждении этого пункта в отчете мы с Александром Алексеевичем Прокудой пришли к соглашению, что под этим будет пониматься "Количество нарядов, имеющих за указанный период дубликаты (наряды с одним и тем же телефоном порта и кодом неисправности)"
Поэтому запрос будет выглядеть так:

SELECT phone_port, id_code_completion, COUNT (1) cnt
FROM support.request r
WHERE r.create_date BETWEEN :date_beg AND :date_end
AND r.cur_status <> -1
AND id_code_completion > 0
HAVING COUNT (1) > 1
GROUP BY phone_port, id_code_completion


В запросе исключаются искаженные наряды и наряды с неопределенным кодом неисправности. При желании последние можно включить.
Back to top
View user's profile Send private message
IKar



Joined: 04 Sep 2008
Posts: 11
Location: Уралсвязьинформ, Златоуст

PostPosted: Thu Mar 19, 2009 10:36 am    Post subject: Reply with quote

Inna wrote:
IKar wrote:

Если по входящему вызову создан наряд с тех.данными порта - можно определить принадлежность по площадке. В противном случае - по АОНу. Если по АОНу не классифицируется - сваливать либо в "неопределенные", либо на самый "тяжелый" цех ТУЭС.
З.Ы. Чтобы схема работала, пришлось создать пару вьюшек со специфичными decode.
З.З.Ы. Хотя и в эту схему единичные ВВ, бывает, не укладываются.

Есть еще одна особенность - если входящий вызов перебрасывается с места на место, то в INRING_ADSL он каждый раз фиксируется с новым CALL_ID. Таким образом, один входящий будет посчитан несколько раз.
Еще, если у вас не укладываются единичные ВВ, то получается, что у вас с сотовых звонят единицы?

Не укладываются ВВ с совсем уж кривым АОНом. "Стандартно кривые" АОНы обрабатываются decod'ом во вьюшке. Все это, конечно, очень специфично.

Добавлено:
Сейчас внимательно посмотрел и сам не понял, откуда лезут левые строки:
Code:

decode(nvl(i.id_request,0),0,
 decode(
   substr(decode(nvl(i.abc,'')||nvl(i.ab,''),'51336',i.aonphone,'13666','3699999',
   decode(nvl(i.abc,''),'',nvl(i.ab,'')||nvl(i.aonphone,''),nvl(i.abc,'')||nvl(i.aonphone,''))),1,2),
   '36','Златоуст','37','Златоуст','54','Куса','61','Сатка','47','Катав-Ивановск',
   '67','Усть-Катав','59','Аша','Златоуст'),
r.ceh) ceh_aon,
Back to top
View user's profile Send private message
IKar



Joined: 04 Sep 2008
Posts: 11
Location: Уралсвязьинформ, Златоуст

PostPosted: Fri Mar 20, 2009 5:48 pm    Post subject: Reply with quote

Можно ли в конструкторе отчетов в cross-tab только для строки "итого" задать больше одной функции? Например, sum и avg.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic    ООО "СКБ Проминформ" Forum Index -> Система Техподдержки ADSL All times are GMT + 5 Hours
Goto page 1, 2  Next
Page 1 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group

Anti Bot Question MOD - phpBB MOD against Spam Bots
Blocked registrations / posts: 84902 / 0