Versão 58
Melhorias
Engine
- A leitura das variáveis de ambiente via
engine.env
passa a ser feita de forma case-insensitive.
- O método
QueryUtilities.prototype.clauseWhereOfKeys
foi otimizado para tratar listas contendo milhares de chaves. É importante observar que o uso
desse método com uma quantidade muito elevada de chaves gera consultas não otimizadas e os SGBDs
podem rejeitar a cláusula gerada devido a restrições ou limitações próprias, sendo recomendado
nesse caso o filtro por uma subquery em vez do uso deste método.
- O Engine passa a ser compilado com as proteções
ASLR e
NX ativas por padrão.
- O método
DataSet.prototype.sum
passa a arredondar os valores dos campos do tipo number
caso eles sejam utilizados para
agrupamento. O objetivo dessa melhoria é tentar reduzir a quantidade de grupos distintos
gerados pela imprecisão intrínseca da representação numérica em
ponto flutuante. Apesar
desta melhoria, não é recomendado que campos do tipo number
sejam utilizados para identificar
os grupos de registros a serem totalizados.
Web Framework
- Os logs de execução das interações dos processos gravados no arquivo “main.log” passam a
indicar o usuário que executou o processo e o identificador da sessão.
Extensão VS Code
- O histórico de alterações da Virtual File System passa a contar com links para exibir mais
resultados ao final da lista de alterações de cada arquivo. Esses links estendem
a busca para o respectivo arquivo, exibindo resultados mais antigos.
- O histórico de alterações da Virtual File System passa a contar com filtro de busca por
conteúdo do arquivo. Mais informações em
https://nginstack.com/pt/docs/vscode/vfs-history/#filtros-extras
Web Framework
- A versão do sistema passa a ser exibida no rodapé dos relatórios gerados pela classe
SimpleLayout
, permitindo ao usuário identificar a versão do sistema que gerou um relatório
impresso ou enviado por e-mail.
Defeitos corrigidos
Admin
- O processo “Admin > Auditoria > Desfazer ou refazer as alterações” poderia gerar o erro
“Usuário ou senha inválidos na conexão com a origem”, mesmo quando não era utilizada a opção
“Informar base de origem”.
- O processo “Admin > Auditoria > Desfazer ou refazer as alterações” falhava caso fossem
informados os filtros “Tabela”, “Nome da tabela” ou “Chave do usuário”.
- O relatório “Admin > Auditoria > Consultar alterações” apresentava erro se houvesse no histórico
de alterações uma classe removida.
Engine
- A edição de um registro em um DataSet com delta compartilhado, criado com a opção
sharedDelta
habilitada no momento do clone, poderia ser ignorada durante a execução do applyUpdates
.
- Os listeners de eventos registrados com a API legada
LegacyEvent.prototype.set
poderiam ser executados em duplicidade caso também fossem registrados listeners com a API
atual de eventos
Emitter.prototype.on
.
- O método
Math.ceil()
não suportava valores superiores ou inferiores aos limites de um inteiro
de 32 bits.
- O Windows 11 era identificado incorretamente como Windows 10 nos logs do Engine.
Desenvolvimento
- A pré-visualização de relatório exibida no processo “Desenvolvimento > Relatórios >
Editor (experimental)” não carregava corretamente o estilo visual e apresentava dados
textuais sem formatação.
Extensão VS Code
- O histórico de alterações da Virtual File System retornava resultados de todos os arquivos
quando o filtro fosse preenchido com um caminho ou padrão que não correspondesse a um arquivo.
Nesses casos, a interface passa a informar que não foram encontrados resultados.
Web Framework
- Ao mudar a visão de uma grade vazia que contivesse um campo do tipo grade de uma classe filha de
“Relações entre cadastros e arquivos” era exibido o alerta “Ocorreu um erro ao tentar calcular
o valor do campo Imagem”.
- Ao exportar os registros de uma grade no formato de relatório, os campos inteiros eram exibidos
indevidamente com separador decimal.
- Em algumas ocasiões, ao inserir novo registro em grades cuja quantidade de registros era maior
que o número máximo de registros exibidos, era exibida a seguinte mensagem: “Ocorreu um erro ao
executar os comandos de sincronismo recebidos do servidor”.
- Ao criar uma grade de configuração utilizando a função
newSettingsGrid
,
era exibido o erro “O tipo de campo informado é inválido” para alguns tipos de configurações.
Última atualização em 14 Apr 2022