Versão 21

Melhorias

Engine

  • Os comportamentos específicos do runtime JavaScript do Engine passam a ser documentados em https://nginstack.com/pt/docs/engine/javascript/. A leitura dessa documentação é recomendada para todos os desenvolvedores da plataforma, pois ela trata de assuntos que até então não haviam sido adequadamente divulgados, entre eles, o uso e a compatibilidade com o runtime V8.
  • Foi implementado o construtor do objeto ArrayBuffer.
  • For implementado no objeto XMLHttpRequest as propriedades response e responseType, que possibilitam a leitura do corpo do retorno de uma requisição como um ArrayBuffer ou como um objeto JSON, além do tipo string. Também agora é possível informar o corpo de uma requisição, no método send, usando o tipo ArrayBuffer, além do tipo string já suportado. For implementado a flag decodeContentFromLatin1, informada no construtor do objeto, que possibilita controlar o comportamento do Engine na decodificação do conteúdo do retorno de uma requisição. O valor padrão é true, mantendo o comportamento atual mas no futuro else será alterado para false, sendo recomendado rever os scripts que dependam dessa característica.
  • Foi implementado no método write objeto Socket o envio de objetos do tipo ArrayBuffer.
  • Ao utilizar o método QueryAnalyzer.getTxtExecutionPlan() ocorria o erro “ResponseObject is not defined”.

Web Framework

Defeitos corrigidos

Admin

  • O processo Admin > Classes Explorer verificava apenas a permissão de visão do usuário para a classe Dados > Sistema > Classes e exibia todas as classes se houvesse permissão. Agora o processo passa a também verificar a permissão de visão aos dados das classes, permitindo que esse processo possa ser utilizado por usuários que não sejam administradores do sistema.

Desenvolvimento

  • Ao executar o processo Desenvolvimento > Base de dados > Atualizar estrutura ocorria o erro “Incorrect syntax near the keyword NOT” caso fosse utilizado o banco de dados Microsoft SQL Server e existisse um campo “CLASSE” ou “iClass” sem a restrição “NOT NULL” configurada.

Engine

  • Em arquiteturas 64 bits, a heurística que define o tamanho padrão do cache do IDO sempre resultava em um cache de 256 MB em vez de ser uma fração da quantidade total de memória RAM instalada no servidor.
  • O tempo de timeout dos métodos read e readln da classe Socket poderiam não ser respeitados caso ocorresse uma virada do dia.

REST Framework

  • Ao executar a função persistDataSets informando DataSets da tabela iVfs ocorria o erro “Não é permitido persistir um DataSet que não possua o campo iClass ou CLASSE”.

Web Framework

  • Links de relatórios com rótulos longos não eram exibidos corretamente quando havia mais de um link configurado em uma mesma coluna.
  • Script de inicialização do Web Framework usava APIs que não eram importadas explicitamente, dificultando o seu uso em testes unitários.
  • Ao mudar a visão para o modo tabela ocorria o destaque de dois registros posicionados caso o campo em edição no modo formulário não fosse visível no modo tabela.
  • O link para o manual “Teclas de atalho do Web Framework” não funcionava na ajuda do Web Framework.
  • Ao chamar o método Grid.prototype.expand a grade poderia ser reposicionada para o último registro selecionado.
  • Ao informar o valor de um campo do tipo combo ocorria um erro quando ele era configurado para aceitar múltiplos valores, via propriedade multiple, e a pesquisa do valor informado retornava uma única ocorrência.
  • Ao navegar em uma grade mestre não ocorria a emissão do evento afterScroll da grade detalhe.

Outras alterações

Engine

  • A biblioteca OpenSSL utilizada pelo Engine foi atualizada da versão 1.0.2o para a versão 1.0.2q. Para maiores detalhes sobre as alterações, consultar no site oficial as novidades dessa versão.

Web Framework

  • A tela de login e o ambiente padrão do sistema passam a utilizar as seguintes propriedades de vendor em vez do nome fixo nginstack: