sexta-feira, 14 de dezembro de 2012

CA Service Desk r12: Relatório de Percentual de Chamados Reabertos

0 comentários
Olá pessoal,

Segue abaixo como montar uma consulta para saber o percentual de chamados reabertos em relacão ao total de chamados.



use mdb
go
select count(ca.call_req_id) as qtdreaberturas,
         Total=(select count(ref_num) from Call_Req),
         convert(char(10),
         ((count(ca.call_req_id))/(select count(ref_num) from Call_Req))
         ) + '%' as Percentual
        
from Act_log as ca
where ca.type='RO'


No resultado de exemplo abaixo, o percentual de reaberturas é inferior a 1%.

 


Abraço e até a próxima !

Fábio Motta
Consultor de TI




Read full post »

CA Service Desk r12: Filtro por Categoria ate quinto nivel

0 comentários
Ola pessoal,

Neste artigo pretendo mostrar como fazer um relatório filtrando por categorias no CA Service Desk 12.6 uma vez que as categorias sao armazenadas em um único campo separando os subníveis por ponto.

Pretendo utilizar o comando parsename para separar os níveis, so que temos um problema com esse comando. Ele conta a partir da direita para esquerda e tambem ele considera outros caracteres como por exemplo aspas como separador. Com isso nao podemos confiar neles para definir os niveis. Para isso criei uma funcao que conta a quantidade de pontos do campo. Assim a quantidade de pontos + 1 seria a quantidade de níveis que aquele campo teria.
Primeiramente temos que criar um no SQL Server uma função para contar a quantidade de um determinado caracter que voces podem ver acessando o link.

Utilizando a função CountChar + o comando parsename do SQL Server para localizar os níveis das categorias:



use mdb
go
select sym, dbo.CountChar('.',sym)+1 as 'QtdNiveis',
      CASE WHEN dbo.CountChar('.',sym)>0 THEN substring(sym,1,(charindex('.',sym)-1)) ELSE ct.sym END as 'CTG_1nivel',
      CASE WHEN (dbo.CountChar('.',sym)+1)=2 THEN parsename(sym,1)
           WHEN (dbo.CountChar('.',sym)+1)=3 THEN parsename(sym,2)
           WHEN (dbo.CountChar('.',sym)+1)=4 THEN parsename(sym,3)
         WHEN (dbo.CountChar('.',sym)+1)=5 THEN parsename(sym,4) ELSE '' END as 'CTG_2nivel',
      CASE WHEN (dbo.CountChar('.',sym)+1)=3 THEN parsename(sym,1)
         WHEN (dbo.CountChar('.',sym)+1)=4 THEN parsename(sym,2)
         WHEN (dbo.CountChar('.',sym)+1)=5 THEN parsename(sym,3) ELSE '' END as 'CTG_3nivel',
      CASE WHEN (dbo.CountChar('.',sym)+1)=4 THEN parsename(sym,1)
         WHEN (dbo.CountChar('.',sym)+1)=5 THEN parsename(sym,2) ELSE '' END as 'CTG_4nivel',
    CASE WHEN (dbo.CountChar('.',sym)+1)=5 THEN parsename(sym,1) ELSE '' END as 'CTG_5nivel'
from prob_ctg ct
 

A consulta acima mostra o campo das categorias (sym) separando por niveis. A partir dai a imaginação é o limite. :-) Seguem alguns exemplos:



Exemplo 1: FILTRA TODOS OS CHAMADOS ATIVOS DO TIPO PROBLEMA ONDE A CATEGORIA DE PRIMEIRO NIVEL SEJA IGUAL A TI

use mdb
go
select cr.ref_num, ct.sym
from Call_Req cr, prob_ctg ct
where cr.active_flag=1 -- chamados ativos
  and cr.category = ct.persid
  and cr.type like 'P' -- do tipo Problema
  and (CASE WHEN dbo.CountChar('.',ct.sym)>0
        THEN substring(ct.sym,1,(charindex('.',ct.sym)-1))
      ELSE ct.sym END) like 'TI' -- Categoria de Primeiro Nivel igual a TI
 



Exemplo 2: FILTRA TODOS OS CHAMADOS ATIVOS DO TIPO PROBLEMA ONDE A CATEGORIA DE SEGUNDO NIVEL IGUAL A BANCO DE DADOS

use mdb
go
select cr.ref_num, ct.sym
from Call_Req cr, prob_ctg ct
where cr.active_flag=1 -- chamados ativos
  and cr.category = ct.persid
  and cr.type like 'P' -- do tipo Problema
  and (CASE WHEN (dbo.CountChar('.',sym)+1)=2 THEN parsename(sym,1)
           WHEN (dbo.CountChar('.',sym)+1)=3 THEN parsename(sym,2)
           WHEN (dbo.CountChar('.',sym)+1)=4 THEN parsename(sym,3)
         WHEN (dbo.CountChar('.',sym)+1)=5 THEN parsename(sym,4) ELSE '' END)
         like 'Banco de Dados' -- Categoria de Segundo Nivel igual a Banco de Dados


Espero que tenha sido útil para voces.

Abraço e até a próxima !

Fabio Motta
Consultor de TI
Read full post »
 

Copyright © Conversas Tecnicas Design by Free CSS Templates | Blogger Theme by BTDesigner | Powered by Blogger