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.
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
Administração do sistema
O processo “Administração do sistema > Auditoria > Reversão de 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 “Administração do sistema > Auditoria > Reversão de alterações” falhava caso fossem
informados os filtros “Tabela”, “Nome da tabela” ou “Chave do usuário”.
O relatório “Administração do sistema > Auditoria > Logs de alterações de registros” 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.