Manual - ArticleListAndTimeCalculation - AddOn de relatório para OTRS
O ArticleListAndTimeCalculation é um Add On desenvolvido pela Complemento que adiciona um novo objeto dinâmico no módulo de Estatísticas do OTRS permitindo a confecção de uma gama nova de relatórios que lista artigos de chamados, campos dinâmicos de artigo e realiza calculos no momento da extração do relatório. Também cria duas colunas que exibem o tempo de atendimento dentro (HC) e fora do horário comercial (FHC):
Funcionalidades
Extração de Artigos e Campos Dinâmicos de Artigos
Permite a extração de artigos dos chamados bem como de campos dinâmicos de artigo. Em cada linha do relatório poderá conter as seguintes informações:
- Assunto do Artigo
- Corpo do artigo (texto escrito pelo atendente ou cliente)
- Remetente/Destinatário do Artigo
- Todos os campos dinâmicos do Artigo
- Data de criação do artigo
- ID do Artigo
- Titulo do Chamado
- Número do Chamado
- Proprietário do Chamado
- Estado, prioridade, serviço e outras informações do chamado.
- Todos os campos dinâmicos do Chamado
Calculo de tempo
Os relatórios gerados com este AddOn podem realizar o calculo de atendimentos realizados dentro do horário comercial e fora do mesmo, de acordo com o calendário escolhido, a partir de dois campos dinâmicos do tipo "Data/Hora" que o administrador pode criar para os artigos. Essa informação é trazida em duas novas colunas do relatório: HC para minutos atendidos dentro do horário comercial e FHC, para minutos fora do horário comercial
Colunas calculáveis
Finalmente, é possível trazer novas colunas nos relatórios, que são calculadas no momento da extração do mesmo. Por exemplo, você pode trazer a coluna "Valor do Atendimento", que é o resultado dos minutos de atendimento em horário comercial, mais 1,5 vezes os minutos de atendimento fora do horário comercial, dividido por 60 (minutos) x 100 (valor da hora de atendimento).
Como adquirir
Este módulo está disponível apenas para clientes da Complemento. Entre em contato para mais informações.
Compatibilidade
Este AddOn é compatível apenas com OTRS 3.3 e OTRS 4.0 instalados em banco de dados MYSQL. Consulte-nos para outros tipos de instalação.
Este AddOn não é homologado pelo OTRS Group.
Instalação do Módulo
O Add On deve ser instalado pelo Gerenciador de Pacotes do OTRS.
Configurações iniciais
Opcional: Criação dos Campos Dinâmicos de Artigo, para armazenar Inicio e Fim de uma atividade
Acesse Administração --> Campos Dinâmicos. Adicione um campo do tipo Data/Hora (Date/Time):
Vamos criar um campo dinâmico para armazenar o inicio da atividade/tarefa realizada e vamos chamá-lo TaskStart:
Salve este campo dinâmico.
Agora, crie mais um campo dinâmico do objeto artigo do tipo Date / Time, para armazenar o fim da atividade. Você pode chamá-lo por exemplo de TaskEnd.
Disponibilize este campo dinâmico nas telas que desejar (verifique nossos manuais sobre como disponibilizar campos dinâmicos em telas).
Verifique o ID dos campos recém criados. Isto é possível acessando as configurações de cada campo e vendo o ID que é exibido na URL do navegador. Por exemplo:
Acesse a seguir Administração -> Configurações do Sistema -> Complemento-Stats -> Stats::ArticleListAndTimeCalculation
No campo "Stats::ArticleListAndTimeCalculation###AtendIniID", coloque o ID do campo criado para armazenar o inicio do atendimento, no caso, o ID do campo TaskStart que em nosso exemplo acima é 19.
No campo "Stats::ArticleListAndTimeCalculation###AtendFimID", coloque o ID do campo criado para armazenar o término do atendimento, no caso, o ID do campo TaskEnd:
Criando campos Calculados (opcional)
Também podemos realizar alguns calculos no relatório. Por exemplo, podemos calcular o custo de um atendimento, somando o tempo de atendimento em minutos no horário comercial ($Article{HC}) com o tempo de atendimento fora do horário comercial ($Article{FHC}) vezes 1,5, dividir por 60 minutos para chegar no número de horas e multiplicar pelo valor hora de R$ 120,00.
Para isto, acesse Administração -> Configurações do Sistema -> Complemento-Stats -> Stats::ArticleListAndTimeCalculation::AdditionalFields
Ative os dois primeiros campos e os configure como abaixo:
IMPORTANTE: O calculo realizado no relatório é escrito em liguagem Perl. Ele pode travar o servidor, logo, é recomendado que você realize tudo em um servidor de homologação antes de aplicar em produção e, quando possível, conte com ajuda de um especialista Perl.
O valor da célula será armazenada na variável $ResumeRow[$i].
Por se tratar de um calculo perl, é possível realizar calculos mais complexos utilizando condições. Por exemplo, podemos fazer com que o valor por hora varie de acordo com o tipo de chamado (Para incidentes X reais/hora, para requisições Y reais/hora)
Sugestões de variáveis que podem ser utilizadas no calculo:
$Article{HC} - Minutos em horário comercial
$Article{FHC} - Minutos fora do horário comercial
$Article{Minutes} - Minutos corridos (soma dos minutos em HC e FHC)
$Article{Type} - Tipo de Chamado
$Article{Service} - Serviço do Chamado
$Article{DynamicField_XYZ} - Valor de um campo dinâmico específico
Criando um novo relatório
Adicione um novo relatório clicando em Estatísticas -> Nova:
Passo 1
Preencha os campos do 1o Passo do Relatório (Especificações Gerais), escolhendo o objeto dinâmico ArticleListAndTimeCalculation:
Clique em Próximo.
Passo 2
No segundo passo, você deve escolher quais são as colunas que você irá exibir no relatório gerado:
Note, que rolando os valores para abaixo, você encontrará os campos dinâmicos de chamado e de artigos, bem como os campos HC, FHC e Minutos, e caso criado algum campo calculado, como no nosso exemplo acima, teremos o campo Cost:
Como temos muitas colunas possíveis, recomendamos que você faça uma pré seleção do que realmente é importante neste passo.
Clique em Próximo após realizar a pré seleção.
Passo 3
Apenas clique em Próximo;
Passo 4 - Filtros
Selecione os filtros que deseja aplicar ao relatório:
Tipo
Trará artigos de chamados que possuem um ou mais tipos específicos.
Serviço
Permite restringir resultados de chamados que possuam um ou mais serviços específicos.
ANS
Permite restringir resultados de chamados que possuam um ou mais SLA's específicos.
One of these article's dynamic fields must not be empty
IMPORTANTE: Trará apenas artigos que possuam um dos campos dinâmicos selecionados preenchidos. Isto pode reduzir consideravelmente o processamento do servidor.
One of these ticket's dynamic fields must not be empty
Trará apenas artigos de chamados que não contenham um dos campos dinâmicos selecionados
Fields that must not be empty after process fields calculations
Após o processamento dos campos de cada linha, é possível se desejaremos trazer aquela linha caso um determinado campo ainda seja vazio.
Calendar to Use on Time Accounting
Que calendário utilizar para realizar a contabilização de minutos em horário comercial e fora dele. Por padrão, usa o calendário do próprio chamado (Fila ou SLA). Caso selecionado, usará este calendário específico para todos os artigos e chamados processados.
Only with Accounted Time > 0
Trazer apenas artigos que possuem mais que 0 minutos de trabalho registrado.
Fila
Artigos de chamados que estão em uma fila específicas.
Estado
Artigos de chamados que estão em estado específicos.
Task Start Time
Trazer apenas artigos que possuam o campo de início da atividade dentro de determinado período.
Ticket Creation Time
Trazer apenas artigos de chamados que tenham sido criados dentro de determinado período.
Article Creation Time
Trazer apenas artigos que tenham sido criados dentro de determinado período.
Customer ID
Trazer artigos de chamados de uma empresa específica.
Testando nosso relatório!
Vamos adicionar uma nota em um de nossos chamados, com 25 minutos de atividade realizado dentro do horário comercial:
Vamos adicionar mais uma atividade com 30 minutos de horário comercial e 30 minutos fora do horário comercial (horário comercial até as 18h):
Extraindo nosso relatório, constataremos o seguinte resultado:
Configuração Avançada
Criando uma nova ordenação das colunas do relatório
É possível configurar uma nova ordem das colunas do relatório, porém, todos os relatórios extraídos com o objeto dinâmico ArticleListAndTimeCalculation possuirão as mesmas colunas e a mesma ordenação de colunas.
Para isto, acesseAdministração -> Configurações do Sistema -> Complemento-Stats -> Stats::ArticleListAndTimeCalculation e altere coloque as colunas que deseja exibir no campo Stats::ArticleListAndTimeCalculation::ColumnOrder, separados por espaço.
Os valores possíveis são os seguintes:
- Number (Número da linha)
- TicketID
- TicketNumber
- CustomerID
- Title
- StateID
- State
- ArticleID
- Subject
- StateType
- Priority
- PriorityID
- Lock
- LockID
- Queue
- QueueID
- CustomerUserID
- Owner
- OwnerID
- Type
- TypeID
- SLA
- SLAID
- Service
- ServiceID
- Responsible
- ResponsibleID
- Age
- Created
- CreateTimeUnix
- CreateBy
- Changed
- ChangeBy
- ArchiveFlag
- EscalationResponseTime
- EscalationUpdateTime
- EscalationSolutionTime
- EscalationDestinationIn
- EscalationDestinationTime
- EscalationDestinationDate
- EscalationTimeWorkingTime
- EscalationTime
- FirstResponseTimeEscalation
- FirstResponseTimeNotification
- FirstResponseTimeDestinationTime
- FirstResponseTimeDestinationDate
- FirstResponseTimeWorkingTime
- FirstResponseTime
- UpdateTimeEscalation
- UpdateTimeNotification
- UpdateTimeDestinationTime
- UpdateTimeDestinationDate
- UpdateTimeWorkingTime
- UpdateTime
- SolutionTimeEscalation
- SolutionTimeNotification
- SolutionTimeDestinationTime
- SolutionTimeDestinationDate
- SolutionTimeWorkingTime
- SolutionTime
- FirstResponse
- FirstResponseInMin
- FirstResponseDiffInMin
- SolutionTime
- SolutionInMin
- SolutionDiffInMin
- FirstLock
- From
- To
- Cc
- Body
- ReplyTo
- MessageID
- InReplyTo
- References
- SenderType
- SenderTypeID
- ArticleType
- ArticleTypeID
- ContentType
- Charset
- MimeType
- IncomingTime
- DynamicField_Action
- DynamicField_AtendIni
- DynamicField_AtendFim
- DynamicField_hsaida
- DynamicField_hchegada
- DynamicField_sretorno
- DynamicField_hretorno
- DynamicField_XYZ (qualquer chave de campo dinâmico)
- Minutes
- HC
- FHC
- Field1 (campo calculado)
- FieldX (campo calculado)