Versão 31

Melhorias

Admin

  • O processo Admin > Monitoramento > Sessões de aplicativos passa a apresentar o endereço IP do cliente e o navegador utilizado no acesso ao sistema.

Engine

  • O construtor da classe ScriptRunner passa a permitir que seja indicado um pool de sessões stateless por meio da opção realm. Essa nova opção tem o objetivo de permitir o reuso de ambientes JavaScript pelas várias instâncias de ScriptRunner configuradas para utilizar um mesmo pool.
  • As abas da IDE do Engine passam a poder ser reordenadas arrastando-as com o mouse.
  • Foi criada a propriedade Session.prototype.clientId com o objetivo de identificar unicamente o navegador ou dispositivo utilizado pelo cliente no acesso ao Engine. Essa propriedade somente estará definida se o realm da sessão estiver configurado com a propriedade RealmConfig.prototype.clientTrackingEnabled ativa.
  • Foi criada a configuração RealmConfig.prototype.sessionTrackingEnabled com o objetivo de desativar o rastreamento das sessões stateful via cookie. Quando desativada, a identificação da sessão deve ocorrer de forma manual via cabeçalho da requisição HTTP ou por meio de um parâmetro na query string.
  • A constante Number.EPSILON passa a ser definida via polyfill no runtime JavaScript padrão do Engine, conforme especificação ECMAScript 2015.
  • A classe File foi revista para se adequar ao cenário de uso em múltiplas plataformas. O parâmetro do seu construtor que indica o modo de abertura do arquivo passa a suportar novas opções, além de algumas alterações de comportamento das opções existentes. O modo openRead deixa de criar um arquivo novo caso não exista algum no caminho informado, sem que isso cause um impacto maior nos scripts, pois nenhuma exceção é lançada. Anteriormente, a classe File realizava bufferização das operações de leitura, mas não fazia para a escrita. Agora as duas operações são bufferizadas por padrão, o que pode causar algum impacto em scripts que fazem acesso simultâneo de leitura e escrita a um mesmo arquivo. Foi então criado o modo unbuffered, que desativa esse buffer de leitura e escrita, sendo recomendado o seu uso em casos onde for realizado acesso simultâneo ao arquivo por múltiplas aplicações, sem a utilização de algum mecanismo de sincronização. Os modos de compartilhamento (denyAll, denyWrite e denyNone) foram descontinuados e são agora ignorados. Os demais modos, assim como os demais métodos da classe continuam se comportando como antes.

Web Framework

  • A restrição que impedia o uso do sistema em múltiplas abas de um mesmo navegador foi eliminada. Agora o usuário pode abrir uma aba e iniciar uma nova sessão caso tenha que realizar mais de uma operação ao mesmo tempo, não sendo mais necessário utilizar um outro navegador ou servidor.
  • A pesquisa na grade passa a ser aproximada para valores numéricos, permitindo que o usuário encontre valores que são muito próximos do pesquisado, mas que não são exatamente iguais. Esta melhoria permite que o usuário localize dados que foram gravados no DataSet com uma precisão decimal maior que a configurada no campo.

Defeitos corrigidos

Engine

  • A classe XMLHttpRequest não permitia informar o corpo de uma requisição quando utilizado o método “DELETE”.
  • A reinserção de um registro excluído poderia não ser gravada corretamente pelo método DataSet.prototype.applyUpdates.
  • Foram corrigidos alguns erros de fuga de memória no Engine.
  • Em algumas situações, um erro de rede poderia ocasionar um estouro de pilha no Engine.
  • Os gráficos de consumo de memória do Manage não estavam sendo exibidos.

Web Framework

  • As ocorrências de uma pesquisa na grade eram apresentadas em uma ordem incorreta caso o campo pesquisado estivesse indexado em ordem decrescente.

Outras alterações

Engine

Web Framework

  • A biblioteca “ECharts” foi atualizada para a versão 4.6.0.