Versão 72

Alterações significativas

Validação estrita de tipo dos campos calculados

Campos calculados passam a verificar se o tipo do valor calculado corresponde ao do campo. Essa modificação pode afetar principalmente campos do tipo date, que deixam de aceitar valores textuais, como “h”, “+1” e “24/04/1990”, passando a exigir que o evento de cálculo retorne uma instância de Date ou null. Os demais tipos de campos também podem ser afetados, caso o tipo do valor retornado seja inconsistente com a definição do campo.

GeneralSettings passa a retornar chaves numéricas em vez de instâncias de DBKey

O método GeneralSettings.prototype.get passa a retornar valores do tipo number e number[] para configurações do tipo DBKey e DBKey[]. Esta alteração tem o objetivo de permitir a pesquisa e comparação de chaves numéricas de forma segura. Mais detalhes no tópico “Evite instâncias persistentes de DBKey” do manual Boas práticas.

Melhorias

Administração do sistema

  • O processo “Administração do sistema > Monitoramento > Engines” passa a indicar se o Engine está sendo executado como servidor de aplicação ou de borda. Também foi criado o filtro “Tipo de servidor” para filtrar os Engines por essa informação.
  • Foram adicionados os filtros de “Assunto” e “Destinatários” no relatório “Administração do sistema > Auditoria > E-mails enviados pelo sistema”.

Engine

  • Foram criados os métodos Email.prototype.saveToStream e Email.prototype.loadFromStream com o objetivo de permitir a serialização de instâncias de Email em arquivos.
  • Foi criada a propriedade Engine.prototype.osName com o objetivo de permitir obter o nome do sistema operacional no qual o Engine está sendo executado.
  • O sistema passa a expirar a sessão de usuários bloqueados, desativados ou removidos de forma mais imediata.
  • Foi criado o método Request.prototype.saveToStream com o objetivo de gravar o corpo de uma requisição HTTP em um arquivo ou MemoryStream.
  • Foi criado o método RequestBody.prototype.asFile com o objetivo de retornar o corpo de uma requisição HTTP como um arquivo temporário em disco, permitindo o processamento de requisições de tamanho elevado sem a necessidade de armazenar todo o corpo da requisição em memória.
  • A classe MultipartFormDataReader passa a suportar requisições HTTP do tipo “chunked”.

Extensão VS Code

  • A extensão passa a contar com o comando Compare File with Another Database, que abre o diff de um arquivo da VFS com sua versão na base escolhida. Este comando simplifica a abertura do diff sem precisar utilizar o fluxo do Source Control.

Web Framework

  • O manual Boas práticas passa a recomendar a ativação da configuração warnIncompleteHelp em bases de desenvolvimento para auxiliar na identificação de componentes de interface sem ajuda definida. Mais detalhes no tópico “Defina a ajuda de todos os componentes visíveis para o usuário” desse manual.
  • Gráficos do tipo ECharts passam a poder ser escritos por meio de instâncias de Label desde que a propriedade autoSanitize esteja desativada.
  • O sistema passa a tentar abortar a execução de processos e relatórios caso ele seja encerrado antes da conclusão. Esse novo comportamento pode ser desativado por meio da propriedade abortSessionOnExit na configuração “/Configuração/Web Framework/Ambiente”.

Defeitos corrigidos

Administração do sistema

  • O processo “Administração do sistema > Monitoramento > Engines” poderia não exibir alertas de Engines desatualizados após a atualização do sistema.
  • O processo “Administração do sistema > Auditoria > Reversão de alterações” não retornava registros se fosse informado o filtro “Tabela”.

Engine

  • A inicialização do Engine poderia falhar se uma interface de rede não tivesse o MAC address cadastrado.

Extensão VS Code

  • Ao criar um novo arquivo do tipo “x-class” na classe Raiz poderia ocorrer o erro “Classe inválida”.

Web Framework

  • O evento calculate do campo estava sendo executado duas vezes seguidas de forma desnecessária.

Outras alterações

Engine

  • A leitura de arquivos da Union File System passa a substituir os caracteres UTF-8 não suportados por um HTML Entity equivalente ao caractere não suportado, modificando o comportamento anterior de substituir esses caracteres por “?”.

Web Framework

  • A fonte Font Awesome e a biblioteca javascript jQTouch deixaram de ser utilizadas no Web Framework e foram removidas do sistema.