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.
Bom dia Jr, gostaria de tirar uma dúvida contigo sobre relatórios do OTRS. Não consigo extrair os relatório de quantidade de chamados por proprietário. Nos relatórios padrões do OTRS, não vejo a opção proprietário em nenhum tipo de relatório.
Aluísio,
Você vai precisar estudar os relacionamento das tabelas.
No link abaixo você vai encontrar de todas as tabelas.
http://ftp.otrs.org/pub/otrs/misc/
Mas já adiantando o tabela ticket tem um campo chamado relaciona o proprietário com o chamado.
Abraço.
Eu também gostaria de gerar um relatório mostrando o atendimento de cada proprietário. Você já conseguiu isso?
Ola Boa tarde estou execultando a criação da trigger porém a tabela TEMPOS_SLA não esta populando .Poderia me dar uma luz ?
José,
Pra te ajudar eu precisaria de mais informações, me mande o log ou um desc das tabelas.
Abraços.
Opa Junior obrigado pelo retorno .Segue informações solicitadas .
#tabela ticket
+————————–+————–+——+—–+———+—————-+
| Field | Type | Null | Key | Default | Extra |
+————————–+————–+——+—–+———+—————-+
| id | bigint(20) | NO | PRI | NULL | auto_increment |
| tn | varchar(50) | NO | UNI | NULL | |
| title | varchar(255) | YES | MUL | NULL | |
| queue_id | int(11) | NO | MUL | NULL | |
| ticket_lock_id | smallint(6) | NO | MUL | NULL | |
| type_id | smallint(6) | YES | MUL | NULL | |
| service_id | int(11) | YES | MUL | NULL | |
| sla_id | int(11) | YES | MUL | NULL | |
| user_id | int(11) | NO | MUL | NULL | |
| responsible_user_id | int(11) | NO | MUL | NULL | |
| ticket_priority_id | smallint(6) | NO | MUL | NULL | |
| ticket_state_id | smallint(6) | NO | MUL | NULL | |
| customer_id | varchar(150) | YES | MUL | NULL | |
| customer_user_id | varchar(250) | YES | MUL | NULL | |
| timeout | int(11) | NO | MUL | NULL | |
| until_time | int(11) | NO | MUL | NULL | |
| escalation_time | int(11) | NO | MUL | NULL | |
| escalation_update_time | int(11) | NO | MUL | NULL | |
| escalation_response_time | int(11) | NO | MUL | NULL | |
| escalation_solution_time | int(11) | NO | MUL | NULL | |
| archive_flag | smallint(6) | NO | MUL | 0 | |
| create_time_unix | bigint(20) | NO | MUL | NULL | |
| create_time | datetime | NO | MUL | NULL | |
| create_by | int(11) | NO | MUL | NULL | |
| change_time | datetime | NO | | NULL | |
| change_by | int(11) | NO | MUL | NULL | |
+————————–+————–+——+—–+———+—————-+
# tabela TEMPOS_SLA
+——————–+————-+——+—–+———+——-+
| Field | Type | Null | Key | Default | Extra |
+——————–+————-+——+—–+———+——-+
| tn | varchar(50) | NO | PRI | NULL | |
| TEMPO_RESPOSTA | datetime | NO | | NULL | |
| TEMPO_ATUALIZACAO | datetime | NO | | NULL | |
| TEMPO_ENCERRAMENTO | datetime | NO | | NULL | |
+——————–+————-+——+—–+———+——-+
# TRIGGER CRIADA
| RegistrarSLA | UPDATE | ticket | 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 | AFTER | NULL | | root@localhost | latin1 | latin1_swedish_ci | utf8_general_ci |
Vou te passar a trigger atualizada no e-mail.
Bom Dia Junior,
Estou tentando implementar a trigger, mas estou tendo problemas para popular.
VOcê consegue me passar uma versão mais atualizada?
Estou utilizando o otrs4.
Obrigado.
pode me enviar também ? uso mysql, atualmente.
Boa tarde Junior,
Você teria esta trigger para o BD postgres?
Não tenho Airton, nas minhas implantações sempre uso o MySQL ou MariaDB.
Olá
Por favor, podem enviar algumas querys (mysql) para acompanhamento de chamados fechados por agente?
Rodrigo, nós não utilizamos mais essa trigger, criamos um plugin pra isso.
https://otrsbrasil.com/2016/08/29/plugin-e-relatorio-para-sla-no-otrs/
Já faz todo o trabalho que tínhamos pra gerar os gráficos.
Ola! Preciso de ajuda. Uso OTRS 5 e ao tentar criar a Trigger aparece um erro “You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near ‘DELIMITER $$
CREATE TRIGGER `RegistrarSLA` AFTER UPDATE ON `ticket`
FOR EACH ROW’ at line 1 ”
O que precisa ser alterado?