Versão 63
Melhorias
Engine
Web Framework
- O campo “Peso” da grade “Colunas selecionadas” do Gerador de Relatórios
(acessado via “Perfil do usuário > Meus relatórios”) passa a ser apresentado apenas em modo
formulário, e seu texto de ajuda agora é mais claro, sinalizando que o campo deve ser preenchido
com o nome de uma coluna de pesos para cálculo da média aritmética ponderada.
O campo também deixa de ter como preenchimento um texto livre e passa a apresentar as colunas de
valores numéricos disponíveis na fonte de dados que está sendo utilizada.
- Foi criada a propriedade
ViewDefField.prototype.enterKeyAction
que permite ao desenvolvedor especificar o comportamento do campo quando for digitada a tecla ENTER.
Defeitos corrigidos
Engine
- Índices com expressões lookups poderiam perder a integridade após a criação ou remoção de
uma classe de dados. Essa falha eventualmente se manifestava com o erro “Error updating index”
durante o sincronismo do cache local, impedindo o uso do sistema.
- A pesquisa em índices com expressões lookups poderia falhar em DataSets temporários caso
os registros das tabelas associadas à expressão lookup fossem modificados.
- A classe
XMLHttpRequest
sempre adicionava o parâmetro “charset” no cabeçalho “content-type”
quando o conteúdo enviado era um texto. Esse comportamento poderia gerar um cabeçalho incorreto
para os tipos de mídia textuais que não esperam esse parâmetro, como o “multipart/form-data”.
A partir desta versão, o sistema passa a adicionar esse parâmetro automaticamente apenas para
os tipos de mídia “text/*”, “application/xml” e “*/*+xml”. Para os demais tipos, o “charset”
precisa ser explicitamente definido pelo desenvolvedor no cabeçalho via setRequestHeader
.
- O método
XMLHttpRequest.prototype.setRequestHeader
gerava uma requisição HTTP inválida
caso o valor do cabeçalho informado contivesse um salto de linha. Saltos de linha e espaços,
no início e no fim do valor do cabeçalho, passam a ser removidos, conforme especificação da
API XMLHttpRequest
.
- Na integração com Java, não era possível a partir de uma classe Java invocar a execução de um
script do Engine se a chave do script fosse de 64 bits.
- A classe
DBTracker
,
utilizada para rastrear as alterações dos testes de integração, poderia falhar caso houvesse mais
de uma execução de testes ao mesmo tempo.
- O valor informado no parâmetro
recursive
do método
File.deleteDirectory
era ignorado e o método sempre removia o diretório, mesmo que houvesse conteúdo nele. Esse método
agora passa a se comportar conforme a sua documentação e, caso o parâmetro recursive
não seja
informado ou seja falso, o diretório somente será removido se estiver vazio.
Extensão VS Code
- Os botões “Go to File” e “Rerun on Engine” da aba de resultados da execução de código
apresentavam funcionamento incorreto. O primeiro botão deveria abrir o arquivo originalmente
executado e o segundo deveria reexecutar esse arquivo (ou uma determinada seleção dele). Em
certas ocasiões, esses botões estavam utilizando outro arquivo de código fonte de uma execução
paralela, e não o arquivo correto.
Web Framework
- O campo “Derivação” da grade “Colunas selecionadas” do Gerador de Relatórios
(acessado via “Perfil do usuário > Meus relatórios”) reapresentava as exatas mesmas opções
caso a opção de derivação selecionada fosse a mesma que foi digitada no campo no momento da busca.
- A navegação entre os campos de um
FormDialog
não ocorria da mesma forma que a navegação entre os campos da grade. Agora o formulário também passa
a permitir a navegação com a tecla ENTER em todos os tipos de campos e o uso da tecla F2 para
iniciar a edição do campo desejado.
Outras alterações
Engine
- A assinatura dos métodos
Crypto.encryptBytes
e Crypto.decryptBytes
foi alterada e os
parâmetros cipher
e iv
passam a ser obrigatórios. Esses métodos também passam a rejeitar
chaves e vetores de inicialização com tamanho diferente do esperado pelo algoritmo de
criptografia.
- O método
Dataset.prototype.sum
passa a evitar arredondar valores numéricos utilizados
para agrupamento caso eles sejam inteiros. Essa alteração tenta evitar a introdução
de erros de precisão de ponto flutuante em eventuais chaves que erroneamente estejam gravadas
em campos do tipo number
. É importante ressaltar que chaves sempre devem ser armazenadas em
campos e colunas do tipo int64
no DataSet e BIGINT
na base de dados, evitando a imprecisão
inerente da aritmética de ponto flutuante do tipo number
.
- O valor padrão da propriedade
Scheduler.prototype.maxSimultaneousTasks
foi alterado de 2 para 4. A alteração dessa propriedade também passa a gerar um erro
caso o valor informado seja inferior a 1.
Última atualização em 14 Sep 2022