Versão 82

Melhorias

Administração do sistema

  • 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.

Web Framework

  • Foi criada a propriedade SimpleLayout.prototype.showRowDividers com o objetivo de ocultar as linhas divisoras entre os registros dos relatórios.
  • 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.