Versão 27

Melhorias

Engine

  • A leitura de campos do tipo “memo” de DataSets foi otimizada para conteúdos de tamanho superior a 2 KB, beneficiando principalmente APIs que manipulam arquivos, como a VirtualFileSystem e a LobStorage. Em testes realizados utilizando a API VirtualFileSystem foi observada uma uma redução no tempo de leitura de aproximadamente 30%.
  • A classe VirtualFileSystem e a IDE do Engine passam a sugerir os tipos “application/octet-stream” e “text/plain” para arquivos com extensões desconhecidas com base no conteúdo dos arquivos.

REST Framework

  • Os eventos da classe Controller passam a receber as propriedades request, response e result, possibilitando que eles sejam utilizados para modificar a resposta da requisição HTTP. Também foi criado o evento error que é emitido quando o método associado a uma ação de uma rota HTTP gera um erro não capturado. Mais detalhes estão disponíveis no manual Controllers.

Web Framework

  • No diretório de configuração da página de login, o Web Framework passa a carregar todos os arquivos CSS que iniciem com os prefixos “login”, permitindo que a página de login padrão do sistema possa ser customizada sem a necessidade duplicar a configuração. É importante ressaltar que essa é uma configuração avançada voltada para parceiros e não deve ser utilizada pelos clientes finais do sistema. Os nomes das classes CSS são detalhes internos da implementação do Web Framework e podem ser alterados a qualquer momento sem aviso prévio. Configurações sobre essas classes podem deixar de funcionar após uma atualização de sistema, exigindo uma revisão da customização.

Defeitos corrigidos

Desenvolvimento

  • Os processos Atualizar VFS e Atualizar tabelas poderiam corrigir a URL de arquivos da Virtual File System não envolvidos na atualização pontual.

Engine

  • Ocorria o erro External exception C000001D na inicialização do Engine em máquinas com o processador AMD Athlon II X2.
  • A leitura de campos do tipo “memo” de um DataSet poderia gerar o erro “Stream Read Error” caso o campo fosse modificado durante a leitura.
  • O método RSACryptoPKey.prototype.privateDecrypt não estava removendo o padding da string quando o parâmetro CryptoPKey.RSA_PKCS1_PADDING era informado.
  • O método VirtualFileSystem.prototype.getFileSize gerava um erro caso o arquivo não tivesse “Mime Type” definido.

REST Framework

  • O cabeçalho “accept” enviado pelo cliente era validado distinguindo letras maiúsculas das mínusculas. Esse comportamento era incorreto segundo o protocolo HTTP e poderia provocar erros do tipo “406 Not Acceptable” em alguns clientes HTTP, como o Restify.

Outras alterações

Engine

  • Ao modificar o campo “Mime Type” na IDE do Engine, o nome do arquivo deixa de ser alterado para sugerir a extensão associada ao tipo informado, permitindo que o desenvolvedor possa definir um tipo de forma explícita para um dado nome de arquivo.
  • A classe “/Dados/Sistema/Engines” (-1898145089) volta se chamar Computadores, pois nem todos os registros desta classe representam uma instalação do Engine. Em versões futuras da plataforma, será disponibilizada uma nova classe de dados para controle dos Engines conectados à base de dados.