Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 
Not applicable

Transformar Dados

Olá a todos! Tudo bem?

Estou com duas dificuldades no Qlik Sense.

Até o momento eu venho utilizando uma coluna do meu banco de dados que tem as horas dos chamado executados no service desk. Esta coluna contém as horas desta forma:

0,02

0,47

Etc..

Eu faço a divisão deste número por 24, e altero o formato numérico para "Duração" desta forma tenho em horas:

0:01

0:28

Entretanto agora preciso buscar e transformar para horas uma coluna do banco que me da a hora como se fosse por texto. Por exemplo, o chamado foi aberto as 10:30:10 da manhã e o primeiro atendimento as 11:05:10 da manhã.  No banco tenho estas colunas com os seguintes dados chamado aberto em 103010 e o primeiro atendimento em 110510

O que eu precisaria era transformar estes números em horas para que eu pudesse criar KPIs que me dessem a diferença entre estes horários, para medir SLA.

A segunda questão é calcular SLA somente dentro do horário comercial.

A ideia posterior, e pegar o resultado destes dois valores, Hora de abertura e hora do primeiro atendimento e monitorar o tempo que demoramos para atender, caso se aproxime de do limite mude para outra cor. Entretanto, caso o cliente abre um chamado as 18 horas da tarde, não posso considerar as horas das 18:01 até as 08:00 da manhã do outro dia. Existe uma forma de estabelecer este tipo de relação?

Bom, pessoal, de antemão agradeço a todos que colaborarem!

Grande abraço.

Labels (1)
1 Solution

Accepted Solutions
nicolett_yuri

Filipe, você pode tratar, no script, a sua coluna de tempo com a função Time, por exemplo:

Tabela:

LOAD

  CAMPO,

  Time(Time#(CAMPO, 'hhmmss'), 'hh:mm:ss') as TEMPO

INLINE [

CAMPO

135645

074000

080000

];

Sobre o cálculo de tempo de SLA, tenho um post que explica o passo a passo, veja aqui: https://community.qlik.com/groups/qlikview-brasil/blog/2015/06/11/c%C3%A1lculo-de-tempo-%C3%BAtil-de...

View solution in original post

9 Replies
nicolett_yuri

Filipe, você pode tratar, no script, a sua coluna de tempo com a função Time, por exemplo:

Tabela:

LOAD

  CAMPO,

  Time(Time#(CAMPO, 'hhmmss'), 'hh:mm:ss') as TEMPO

INLINE [

CAMPO

135645

074000

080000

];

Sobre o cálculo de tempo de SLA, tenho um post que explica o passo a passo, veja aqui: https://community.qlik.com/groups/qlikview-brasil/blog/2015/06/11/c%C3%A1lculo-de-tempo-%C3%BAtil-de...

Anonymous
Not applicable
Author

Hi

Try this for  calculating  different hours as a Day (eg : 8 AM to 8PM) or (9 AM To 9PM)

https://community.qlik.com/thread/231791?sr=inbox&ru=71132%20-%201119202

Not applicable
Author

Yuri, o link não está funcionando...  Vc tem em algum outro lugar esta informação?

Quanto a função era exatamente isto... era esta função que eu precisava... Muito obrigado.

Not applicable
Author

Yuri, bom dia!

Muito obrigado pela ajuda!

Uma dúvida, o script só funciona se a coluna contiver data e hora juntos?

No meu caso, a coluna de data é separada da coluna de hora... funciona tbm?

nicolett_yuri

Filipe, sim. Você deverá juntar essas colunas

Not applicable
Author

Yuri, bha.. então é possível unir dados de colunas diferentes em uma mesma coluna?

Até então, eu apenas tinha utilizado o "Join" para criar colunas novas.. não sabia que poderia unir colunas. Yuri, talvez então minha tarefa fique então mais fácil.. talvez eu nem precise calcular.

Atualmente meu sistema ERP tem as data já estabelecidas, ou seja, a SLA já é apontada dentro do sistema. Ele em função da data e hora de abertura do chamado, calcula a data máxima prevista para atendimento levando em conta a SLA de 8 horas, contanto apenas horário comercial. Ou seja, ele só considera, das 8:00 ás 12:00  e das 13:00 ás 18:00 Ex: Na tabela de abertura de chamado eu tenho:

Numero_OSData_AberturaHora_AberturaData_Prevista_Maximo_de_InicioHora_Prevista_Maxima_de_Inicio
10026/09/2016 00:00:0016300027/09/2016 00:00:00153000
10527/09/2016 00:00:0008005427/09/2016 00:00:00170054

Na tabela de atividades dos chamados eu tenho

Numero_OSData_Inicio_ChamadoHora_Inicio_Chamado
10026/09/2016 00:00:00174500
10528/09/2016 00:00:00085000

Agora, Yuri, se existe a possibilidade de juntar as colunas, eu poderia fazer algo para ficar conforma abaixo e criar uma regra para ficar em vermelho chamados que passaram do tempo previsto, e consequentemente foram atendidos fora da SLA?

Numero_OSData_AberturaData_Prevista_Maximo_de_Inicio
10026/09/2016 16:30:0027/09/2016 15:30:00
10527/09/2016 08:00:5427/09/2016 17:00:54

Numero_OSData_Inicio_Chamado
10026/09/2016 17:45:00
10528/09/2016 08:50:00
nicolett_yuri

Filipe, sim. Você pode fazer da seguinte maneira:

Date(Floor(Data_Abertura) + Time(Time#(Hora_Abertura, 'hhmmss')), 'DD/MM/YYYY hh:mm:ss') as Data_Hora_Abertura

Exemplo com sua tabela:

LOAD

  *,

  Date(Floor(Data_Abertura) + Time(Time#(Hora_Abertura, 'hhmmss')), 'DD/MM/YYYY hh:mm:ss') as Data_Hora_Abertura

INLINE [

Numero_OS, Data_Abertura, Hora_Abertura, Data_Prevista_Maximo_de_Inicio, Hora_Prevista_Maxima_de_Inicio

100, 26/09/2016 00:00:00, 163000, 27/09/2016 00:00:00, 153000

105, 27/09/2016 00:00:00, 080054, 27/09/2016 00:00:00, 170054

];

Not applicable
Author

Perfeito Yuri.. eu não sabia que existia esta função. Deu certo