Versão 86

Melhorias

Administração do sistema

  • O relatório “Administração do sistema > Ferramentas para chaves > Verificação de integridade das referências” passa a verificar a integridade das colunas de lookup múltiplo.
  • O agendamento de relatórios poderia falhar com o erro “It’s not allowed to change the key field value if logChanges is enabled”.

Desenvolvimento

  • O relatório de geração de build do sistema foi reformulado para exibir as informações com melhor organização e legibilidade, em especial, quando ocorriam falhas na execução dos testes unitários.
  • Os métodos formatTxtReport e formatHtmlReport da classe AggregatedTestResult passam a exibir um resumo da execução dos testes por produto do sistema.

Engine

  • Foram criadas as propriedades Task.prototype.userValidationMode e Job.prototype.userValidationMode com o objetivo de indicar se a execução do script agendado deve considerar o status da conta do usuário responsável pelo agendamento. Essa nova opção é útil para a execução de scripts responsáveis por gravações de operações de forma assíncrona, pois essas operações precisam ser efetivadas na base de dados independentemente do estado do usuário.
  • As páginas “Ports”, “Domains” e “Databases” do Manage passam a validar e indicar mais claramente os campos obrigatórios, evitando falhas de configuração na inicialização do Engine.

Web Framework

Defeitos corrigidos

Administração do sistema

  • A execução da rotina de limpeza de log poderia falhar com o erro “Parâmetro obrigatório não informado” caso o servidor de execução estivesse configurado.
  • A alteração do servidor responsável pela execução dos relatórios agendados no processo “Administração do sistema > Relatórios > Configurações” poderia falhar ao remover os agendamentos do servidor anterior.

Engine

  • O método DataSet.prototype.append poderia falhar ao inserir registros de um outro DataSet originado de um SQL contendo a cláusula UNION ALL.
  • A remoção dos índices nos campos “iVersion” e “VERSAO” realizada na versão 85 foi revertida, pois esses índices são utilizados pelo sistema.

Web Framework

  • Ao expandir um registro de uma grade em árvore, poderia ocorrer um deslocamento indesejado do foco para o registro corrente da grade.
  • O sincronismo da grade poderia falhar com o erro “Erro ao obter o estado da grade” logo após a alteração da propriedade Grid.prototype.maxRecordCount .
  • Ao clicar no botão “Abrir módulo em grade” no menu de acesso rápido ocorria o erro “Erro ao obter menu”.
  • O zoom das imagens em relatórios e grades apresentava falhas quando elas ficavam próximas ao final da área visível da tela.
  • A pesquisa global do sistema poderia não trazer resultados caso o termo fosse alterado durante a sua execução.
  • A alteração de um campo booleano durante a validação de uma modificação anterior poderia deixar o campo em um estado inconsistente. O campo poderia apresentar visualmente um valor diferente do estado real do DataSet.
  • Ao alternar para o modo grade após editar uma grade detalhe, o foco poderia ser restaurado para o campo imediatamente anterior à grade detalhe.

Outras alterações

Engine

  • A função File.moveFile passa a sobrescrever o arquivo de destino caso ele já exista, adotando o comportamento já existente na função File.copyFile .
  • Os logs gerados pelos comandos DML executados via Database.prototype.executeSQL passam a ser gravados no arquivo sql.log na categoria “sql.unsafe”, permitindo o tratamento customizado desses logs caso seja necessário.
  • Foi criada a coluna “iExpiresAt” na tabela “iAuthToken” com o objetivo de armazenar a data e hora de expiração do token. Com essa modificação, as colunas “iUTCExpires” e “iUTCExpiresHour” dessa tabela passam a ser consideradas obsoletas e não serão preenchidas na emissão de novos tokens. Elas também deverão ser removidas em versões futuras do sistema, portanto, o seu uso deve ser revisto.
  • A classe Job foi renomeada para ScheduledJob e passa a ser exportada pelo módulo @nginstack/engine/lib/scheduler/ScheduledJob.js.