• Feedback
  • Vetor Dashboard + NovoSGA versão 1.5.1

Usamos o NovoSGA versão 1.5.1 em ambiente Windows com banco MySQL.
No momento estamos com 8 unidades, 250 usuários ativos (nem todos acessam simultaneamente) e cerca de 1100 senhas emitidas por dia.
Adquirimos há algumas semanas o módulo Vetor Dashboard, a instalação é simples e está funcionando muito bem.
Aqui o cadastramento de usuários é feito apenas pela equipe de TI (Central de Atendimento a Usuários) e com esse módulo simplificamos o gerenciamento dos usuários, pois o supervisor da unidade passou a ter a liberdade de incluir e excluir serviços para as pessoas da sua unidade.
Os supervisores estão muito satisfeitos com as informações apresentadas.
Este módulo não funciona com a versão 2.0, mas como ainda vamos manter a versão 1.5.1 por alguns meses, valeu a pena o investimento (R$900,00).

http://shop.novosga.com/modulos-vetor/9-vetor-dashboard.html

2 anos depois

@rogeriolino não consegui criar um novo tópico no fórum, por isso estou registrando neste tópico antigo

... Dashboard + NovoSGA 1.5.1 erro com MySQL 5.7 ...

Apenas para registrar um erro que foi solucionado e que passou a ocorrer ao atualizar a versão do MySQL.

Erro: Dashboard (módulo adquirido do @rogeriolino em 2018) não mostra os dados e gráficos da primeira aba em homologação, mas mostra corretamente em produção. Ao apontar o ambiente de homologação para o banco de produção funciona normalmente, portanto o erro não era do código do módulo.
Produção = MySQL 5.5.60-0+deb8u1-log
Homologação = MySQL 5.7.25-log

Causa: variável SQL_MODE em homologação está preenchida e em produção está vazia

Solução: no banco de homologação apagar o conteúdo da variável SQL_MODE para que o SQL opere no modo "forgiving", aceitando instruções SQL que não são semanticamente perfeitas, não atendem o padrão SQL-92.

Porque o erro aconteceu:

Nas linhas 67 a 69 do DashboardController.php existe uma instrução em que a cláusula ORDER BY usa um campo que não está no GROUP BY.

MySQL 5.5: default SQL_MODE = vazio
MySQL 5.7 e superior: default SQL_MODE = ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION

Referências:

https://www.percona.com/blog/2019/05/13/solve-query-failures-regarding-only_full_group_by-sql-mode/
https://dev.mysql.com/doc/refman/5.7/en/group-by-handling.html

Como a solução foi identificada

A 'pista' para descobrir o erro estava nas mensagens apresentadas na janela 'Inspecionar código / Console' do Chrome que é acessada com o botão direito do mouse sobre uma área vazia da tela, ou com as teclas Ctrl+Shift+I

Na janela Console encontramos as mensagens:

DevTools failed to load SourceMap: Could not load content for http://10.1.60.119/sga/public/modules/vetor.dashboard/resources/js/angular.min.js.map: HTTP error: status code 404, net::ERR_HTTP_RESPONSE_CODE_FAILURE

GET http://10.1.60.119/sga/public/modules/vetor.dashboard/general 500 (Internal Server Error) angular.min.js?v=1.5.0:93

Ao abrir em uma nova janela do navegador o link http://10.1.60.119/sga/public/modules/vetor.dashboard/general foi apresentada a mensagem:

An exception occurred while executing

'SELECT substring(dt_cheg, 12, 5) as time, COUNT(*) as total
FROM atendimentos
WHERE unidade_id = :unidade
GROUP BY substring(dt_cheg, 12, 5)
ORDER BY dt_cheg DESC LIMIT 60' with params [16]:

SQLSTATE[42000]: Syntax error or access violation:
1055 Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'sga.atendimentos.dt_cheg'
which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

A 'pista' estava no final da mensagem de erro: 'incompatível com sql_mode=only_full_group_by'