Faz um bom tempo que não escrevo por aqui, mas vamos la.
Seguindo uma linha de dicas que venho escrevendo para facilitar nossa vida para criação dos relatórios para o OTRS vou falar hoje sobre os relatórios de SLA.
Existem três campos importantes para isso, ambos estão na tabela ticket.
escalation_update_time
escalation_response_time
escalation_solution_time
O que acontece é que esses campos estão no formato Unix Time
Então para converter.
use otrs;
select tn,
FROM_UNIXTIME(escalation_update_time),
FROM_UNIXTIME(escalation_response_time),
FROM_UNIXTIME(escalation_solution_time),
FROM_UNIXTIME(escalation_time)
from ticket
where ticket.tn=<TICKETNUMEBER>;
Quando você seleciona o SQL esses campos são preenchidos e quando o SLA é cumprido ele é zerado então o que fazer pra resolver esse problema.
CREATE TABLE IF NOT EXISTS `TEMPOS_SLA` (
`tn` varchar(50) NOT NULL,
`TEMPO_RESPOSTA` datetime NOT NULL,
`TEMPO_ATUALIZACAO` datetime NOT NULL,
`TEMPO_ENCERRAMENTO` datetime NOT NULL,
UNIQUE KEY `tn` (`tn`)
)
USE OTRS;
DELIMITER $$
DROP TRIGGER IF EXISTS `otrs`.`RegistrarSLA`$$
CREATE TRIGGER `RegistrarSLA` AFTER UPDATE ON `ticket`
FOR EACH ROW
BEGIN
IF NEW.escalation_update_time !=0 THEN
REPLACE INTO TEMPOS_SLA
(tn,TEMPO_RESPOSTA,TEMPO_ATUALIZACAO,TEMPO_ENCERRAMENTO)
SELECT t.tn, FROM_UNIXTIME(t.escalation_response_time),
FROM_UNIXTIME(t.escalation_update_time),
FROM_UNIXTIME(t.escalation_solution_time) FROM ticket t,ticket_state
ts,ticket_state_type tst WHERE t.tn=NEW.tn and t.ticket_state_id=ts.id and
tst.id=ts.type_id and tst.id!=3;
END IF;
END
$$
DELIMITER ;
A trigger foi baseada numa dica do “Leonardo Certuche”.
Agora é conta de mais e menos pra criar relatórios apresentáveis.
Em um próximo momento apresento algum modelo desse relatório.
Por hoje é isso pessoal.