O processo “Administração do sistema > Auditoria > Limpeza da tabela de log” passa a permitir
a configuração de regras de retenção de logs de auditoria por classe de dados e tipo de log. Antes
essa configuração era restrita aos logs de alterações de registros e exigia a criação de
scripts de configuração específicos para cada classe de dados, o que poderia não ser intuitivo
para os administradores do sistema. Com esta modificação, a configuração de retenção de logs
definida por meio da propriedade transactionLogMaxDays nos arquivos x-class e x-model
passa a ser ignorada e seu uso deve ser revisto e migrado para a nova configuração
de regras de retenção de log, caso ainda seja relevante.
Engine
Foi criado o método
Classes.prototype.getAncestors,
que retorna a lista de chaves com a hierarquia de classes da raiz até a classe informada.
As DLLs do Engine passam a ser assinadas digitalmente com o objetivo de melhorar a
compatibilidade do sistema com o Controle de Aplicativos Inteligentes (Smart App Control) do
Windows 11.
O campo “Status” da página Requests do Manage passa a exibir o método HTTP e a URL das
requisições HTTP em atendimento.
O método
Classes.prototype.getLevel
foi otimizado e passa a contar com um cache de resultados que melhora de forma
significativa o desempenho de operações que necessitem dessa informação, como a ordenação
hierárquica de classes.
Os processos customizados de exportação de dados dos relatórios e das grades do
sistema passam a ser configurados em scripts de configuração da classe
“/Configuração/Web Framework/Exportação de dados”. Os processos customizados existentes devem ser
revistos para serem registrados por meio da nova função registerExportProcess definida nessa
classe de dados. Mais detalhes no
manual de exportação de dados.
As classes FormDialog e SimpleDialog passam a poder ser utilizadas fora do contexto de
processos, permitindo que esses diálogos possam ser exibidos mesmo quando não há processos abertos
no sistema.
Defeitos corrigidos
Administração do sistema
O filtro “Hora final” do processo “Administração do sistema > Auditoria > Reversão de alterações”
poderia retornar registros criados após o horário informado caso o valor do filtro terminasse em
“:00” (ex: “12:00”, “15:00”, etc).
Engine
Os e-mails enviados na autorização e uso das contas de suporte não eram registrados nos
logs de auditoria do sistema.
Ao logar com o usuário “administrator” logo após a atualização do sistema poderia ocorrer
o erro “Foi detectada uma alteração indevida no registro do usuário”.
A vigência da conta do usuário não era corretamente verificada na autenticação de tokens de
autorização.
O sincronismo do cache local poderia falhar recorrentemente caso existisse um índice lookup
com uma falha de integridade de dados. O sistema passa a descartar os índices não íntegros,
permitindo que o sincronismo do cache local possa ser concluído com sucesso. Os índices descartados
por esse motivo passam a ser registrados nos logs do Engine e são reconstruídos automaticamente
quando forem necessários.
Web Framework
A função newSettingsGrid
criava a grade com um texto de ajuda genérico, mesmo quando help era informado como opção no
segundo parâmetro.
O botão de excluir registros da grade detalhe poderia ser exibido desativado mesmo existindo
registros na grade para serem removidos.
Ao mudar de visão em uma grade de dados sem registros poderia ocorrer o travamento da interface.
A exportação de dados para Excel poderia gerar arquivos vazios.
Outras alterações
Engine
O limite de tamanho das instruções SQL foi aumentado de 1,5MiB para 4MiB. É recomendado que as
instruções SQL geradas pelo sistema sejam bem inferiores a esse limite, evitando a geração de
planos de execução ineficientes que podem afetar o desempenho geral do sistema ou que podem
forçar o descarte dos demais planos de execução do cache do banco de dados. O limite corrente
do sistema passa a estar disponível na constante
Limits.MAX_SQL_STATEMENT_SIZE.