Representação Gráfica Acumulando Retornos

Bom dia colegas! Estou com um problema no meu ScadaBR (0.9 > Tomcat7 > Ubuntu 16.04).

Tenho um Meta Datasource que separa alguns datapoints vindos de um Datasource SQL. São datapoints referentes a contagem e agregação de tempo, pois preciso montar um painel cronométrico de funcionamento de um maquinário.

Preciso lançar esses datapoints numa representação gráfica. Estou usando os componentes “Script para o servidor”.
Porém o componente não se comporta como esperado. O script me traz o resultado que preciso, quando executo ele direto no Datasource para testes, o resultado é o esperado. Mas na representação gráfica ele se comporta de maneira diferente, trazendo resultados diferentes. Gostaria de entender por que isso acontece e como resolver.

Abaixo algumas ilustrações do problema:

OBS: não utilizo nenhum código de cálculo no componente, ele tão somente executa “return value”.
OBS2: a execução da query SQL retorna também os valores esperados, essa disparidade acontece apenas na tela de representação gráfica.
OBS3: esse comportamento acontece apenas de um dia para o outro. Se eu destruir os Data Sources e criá-los novamente, a representação volta a funcionar. Mas no dia seguinte, os tempos que deveriam ter reiniciado (pois são cumulativos apenas para o dia) mostram valores que parecem estar somando dias anteriores.

Qualquer ajuda será de grande valor, desde já agradeço!

Pelo que eu entendi você usa os meta datapoints apenas para formatar o timestamp do seu datapoint, certo?

Se for apenas isso eu arrisco dizer que você nem precisaria usar os meta datapoints, uma vez que o próprio script para servidor consegue acessar classes do Java para formatação de datas.

Por exemplo, se você quiser pegar o valor de tempo da última alteração do seu datapoint, você poderia usar o código abaixo:

// Usando a Classe SimpleDateFormat para formatar o tempo
var sdf = new java.text.SimpleDateFormat("HH:mm:ss");

// A variável "time" é própria do script para o servidor, e contém
// o último timestamp do ponto
var tempoFormatado = sdf.format(time);

return tempoFormatado;

Só uma coisa, você quer usar o valor do datapoint como tempo? Porque eu acho que usando “time” você vai receber do ScadaBR o tempo da última alteração que aquele datapoint teve, e não o valor que o datapoint armazena.

Olá Celso, obrigado pela resposta!
Vou tentar realizar essa formatação diretamente na representação gráfica, da maneira que você sugeriu.

Sobre o resultado de “time”, eu estou ciente do retorno, porém este caso é que estou testando algumas queries SQL que retornam views com estruturas diferentes das tabelas nativas do ScadaBR.
Compreendi que em se tratando de consultas SQL baseadas em linhas, ele entende a primeira coluna como identificador, a segunda como o dado e a terceira como o valor de tempo; então, só tive que ajustar a query para retornar uma view nesse formato, porém com os valores de tempo que eu quero (que são somatórios de tempo de outras entradas anteriores). Porém pode ser também justamente essa forma de retornar dados que está me retornando-os indevidamente.

Bom dia! Consegui resolver o problema após trocar minha consulta SQL de “baseada em linhas” para “baseada em colunas”, obrigado a atenção!